mirror of
https://github.com/RadeonOpenCompute/ROCm-docker.git
synced 2023-04-23 17:53:00 +03:00
Merge pull request #78 from RadeonOpenCompute/dev-complete
Updates for ROCm4.1 dockerfiles
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
FROM centos:7
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
ARG ROCM_VERSION=4.1
|
||||
|
||||
# Base
|
||||
RUN yum -y install git java-1.8.0-openjdk python; yum clean all
|
||||
@@ -8,6 +11,7 @@ RUN yum --enablerepo=extras install -y epel-release
|
||||
|
||||
# Install required base build and packaging commands for ROCm
|
||||
RUN yum -y install \
|
||||
ca-certificates \
|
||||
bc \
|
||||
bridge-utils \
|
||||
cmake \
|
||||
@@ -71,7 +75,7 @@ RUN yum install -y devtoolset-7-libatomic-devel devtoolset-7-elfutils-libelf-dev
|
||||
|
||||
# Install the ROCm rpms
|
||||
RUN yum clean all
|
||||
RUN echo -e "[ROCm]\nname=ROCm\nbaseurl=http://repo.radeon.com/rocm/yum/3.9\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/rocm.repo
|
||||
RUN echo -e "[ROCm]\nname=ROCm\nbaseurl=https://repo.radeon.com/rocm/yum/$ROCM_VERSION\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/rocm.repo
|
||||
|
||||
RUN yum install -y rocm-dev
|
||||
|
||||
|
||||
90
dev/Dockerfile-centos-7-complete
Normal file
90
dev/Dockerfile-centos-7-complete
Normal file
@@ -0,0 +1,90 @@
|
||||
FROM centos:7
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
ARG ROCM_VERSION=4.1
|
||||
|
||||
# Base
|
||||
RUN yum -y install git java-1.8.0-openjdk python; yum clean all
|
||||
|
||||
# Enable epel-release repositories
|
||||
RUN yum --enablerepo=extras install -y epel-release
|
||||
|
||||
# Install required base build and packaging commands for ROCm
|
||||
RUN yum -y install \
|
||||
ca-certificates \
|
||||
bc \
|
||||
bridge-utils \
|
||||
cmake \
|
||||
cmake3 \
|
||||
devscripts \
|
||||
dkms \
|
||||
doxygen \
|
||||
dpkg \
|
||||
dpkg-dev \
|
||||
dpkg-perl \
|
||||
elfutils-libelf-devel \
|
||||
expect \
|
||||
file \
|
||||
gettext \
|
||||
gcc-c++ \
|
||||
libgcc \
|
||||
glibc.i686 \
|
||||
libcxx-devel \
|
||||
ncurses \
|
||||
ncurses-base \
|
||||
ncurses-libs \
|
||||
numactl-devel \
|
||||
numactl-libs \
|
||||
libssh \
|
||||
libunwind-devel \
|
||||
libunwind \
|
||||
llvm \
|
||||
llvm-libs \
|
||||
make \
|
||||
openssl \
|
||||
openssl-libs \
|
||||
openssh \
|
||||
openssh-clients \
|
||||
pciutils \
|
||||
pciutils-devel \
|
||||
pciutils-libs \
|
||||
python \
|
||||
python-pip \
|
||||
python-devel \
|
||||
pkgconfig \
|
||||
pth \
|
||||
qemu-kvm \
|
||||
re2c \
|
||||
kmod \
|
||||
file \
|
||||
rpm \
|
||||
rpm-build \
|
||||
subversion \
|
||||
wget
|
||||
|
||||
# Enable the epel repository for fakeroot
|
||||
RUN yum --enablerepo=extras install -y fakeroot
|
||||
RUN yum clean all
|
||||
|
||||
# On CentOS, install package centos-release-scl available in CentOS repository:
|
||||
RUN yum install -y centos-release-scl
|
||||
|
||||
# Install the devtoolset-7 collection:
|
||||
RUN yum install -y devtoolset-7
|
||||
RUN yum install -y devtoolset-7-libatomic-devel devtoolset-7-elfutils-libelf-devel
|
||||
|
||||
# Install the ROCm rpms
|
||||
RUN yum clean all
|
||||
RUN echo -e "[ROCm]\nname=ROCm\nbaseurl=https://repo.radeon.com/rocm/yum/$ROCM_VERSION\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/rocm.repo
|
||||
|
||||
RUN yum install -y rocm-dev rocm-libs
|
||||
|
||||
# Set ENV to enable devtoolset7 by default
|
||||
ENV PATH=/opt/rh/devtoolset-7/root/usr/bin:/opt/rocm/hcc/bin:/opt/rocm/hip/bin:/opt/rocm/bin:/opt/rocm/hcc/bin:${PATH:+:${PATH}}
|
||||
ENV MANPATH=/opt/rh/devtoolset-7/root/usr/share/man:${MANPATH}
|
||||
ENV INFOPATH=/opt/rh/devtoolset-7/root/usr/share/info${INFOPATH:+:${INFOPATH}}
|
||||
ENV PCP_DIR=/opt/rh/devtoolset-7/root
|
||||
ENV PERL5LIB=/opt/rh/devtoolset-7/root//usr/lib64/perl5/vendor_perl:/opt/rh/devtoolset-7/root/usr/lib/perl5:/opt/rh/devtoolset-7/root//usr/share/perl5/
|
||||
ENV LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:/opt/rh/devtoolset-7/root$rpmlibdir$rpmlibdir32${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
ENV PYTHONPATH=/opt/rh/devtoolset-7/root/usr/lib64/python$pythonvers/site-packages:/opt/rh/devtoolset-7/root/usr/lib/python$pythonvers/
|
||||
ENV LDFLAGS="-Wl,-rpath=/opt/rh/devtoolset-7/root/usr/lib64 -Wl,-rpath=/opt/rh/devtoolset-7/root/usr/lib"
|
||||
@@ -1,12 +0,0 @@
|
||||
# This dockerfile is meant to serve as a rocm base image. It registers the dnf rocm package repository, and
|
||||
# installs the rocm-dev package.
|
||||
|
||||
FROM fedora:24
|
||||
LABEL maintainer=kent.knox@amd
|
||||
|
||||
# Register the ROCM package repository, and install rocm-dev package
|
||||
RUN dnf -y update \
|
||||
&& printf "[remote]\nname=ROCm Repo\nbaseurl=http://repo.radeon.com/rocm/yum/rpm/\nenabled=1\ngpgcheck=0\n" | tee /etc/yum.repos.d/rocm.repo \
|
||||
&& dnf -y install \
|
||||
rocm-dev \
|
||||
&& dnf -y clean all
|
||||
@@ -5,9 +5,10 @@ FROM ubuntu:18.04
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
# Register the ROCM package repository, and install rocm-dev package
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl libnuma-dev gnupg \
|
||||
&& curl -sL http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
ARG ROCM_VERSION=4.1
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl libnuma-dev gnupg \
|
||||
&& curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] https://repo.radeon.com/rocm/apt/$ROCM_VERSION/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sudo \
|
||||
libelf1 \
|
||||
|
||||
21
dev/Dockerfile-ubuntu-18.04-complete
Normal file
21
dev/Dockerfile-ubuntu-18.04-complete
Normal file
@@ -0,0 +1,21 @@
|
||||
# This dockerfile is meant to serve as a rocm base image. It registers the debian rocm package repository, and
|
||||
# installs the rocm-dev package.
|
||||
|
||||
FROM ubuntu:18.04
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
# Register the ROCM package repository, and install rocm-dev package
|
||||
ARG ROCM_VERSION=4.1
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl libnuma-dev gnupg \
|
||||
&& curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] https://repo.radeon.com/rocm/apt/$ROCM_VERSION/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sudo \
|
||||
libelf1 \
|
||||
kmod \
|
||||
file \
|
||||
rocm-dev \
|
||||
rocm-libs \
|
||||
build-essential && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
@@ -5,9 +5,10 @@ FROM ubuntu:20.04
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
# Register the ROCM package repository, and install rocm-dev package
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl libnuma-dev gnupg \
|
||||
&& curl -sL http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
ARG ROCM_VERSION=4.1
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl libnuma-dev gnupg \
|
||||
&& curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] https://repo.radeon.com/rocm/apt/$ROCM_VERSION/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sudo \
|
||||
libelf1 \
|
||||
|
||||
21
dev/Dockerfile-ubuntu-20.04-complete
Normal file
21
dev/Dockerfile-ubuntu-20.04-complete
Normal file
@@ -0,0 +1,21 @@
|
||||
# This dockerfile is meant to serve as a rocm base image. It registers the debian rocm package repository, and
|
||||
# installs the rocm-dev package.
|
||||
|
||||
FROM ubuntu:20.04
|
||||
LABEL maintainer=peng.sun@amd.com
|
||||
|
||||
# Register the ROCM package repository, and install rocm-dev package
|
||||
ARG ROCM_VERSION=4.1
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl libnuma-dev gnupg \
|
||||
&& curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - \
|
||||
&& printf "deb [arch=amd64] https://repo.radeon.com/rocm/apt/$ROCM_VERSION/ xenial main" | tee /etc/apt/sources.list.d/rocm.list \
|
||||
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sudo \
|
||||
libelf1 \
|
||||
kmod \
|
||||
file \
|
||||
rocm-dev \
|
||||
rocm-libs \
|
||||
build-essential && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
12
dev/Dockerfile.post-install
Normal file
12
dev/Dockerfile.post-install
Normal file
@@ -0,0 +1,12 @@
|
||||
#| This Dockerfile provides a compatibility check for ROCm docker container.
|
||||
ARG base_image
|
||||
FROM ${base_image}
|
||||
|
||||
MAINTAINER Peng Sun <peng.sun@amd.com>
|
||||
|
||||
COPY scripts/compatibility-check.sh /opt/rocm/bin/rocm-compatibility-test.sh
|
||||
RUN chmod a+x /opt/rocm/bin/rocm-compatibility-test.sh
|
||||
ENTRYPOINT ["/opt/rocm/bin/rocm-compatibility-test.sh"]
|
||||
|
||||
# Default to a login shell
|
||||
CMD ["/bin/bash", "-l"]
|
||||
@@ -15,9 +15,10 @@ MAINTAINER Peng Sun <Peng.Sun@amd.com>
|
||||
|
||||
# Initialize the image
|
||||
# Modify to pre-install dev tools and ROCm packages
|
||||
ARG ROCM_VERSION=4.1
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl gnupg && \
|
||||
curl -sL http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && \
|
||||
sh -c 'echo deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list' && \
|
||||
sh -c 'echo deb [arch=amd64] http://repo.radeon.com/rocm/apt/$ROCM_VERSION/ xenial main > /etc/apt/sources.list.d/rocm.list' && \
|
||||
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
sudo \
|
||||
libelf1 \
|
||||
|
||||
12
rocm-terminal/Dockerfile.post-install
Normal file
12
rocm-terminal/Dockerfile.post-install
Normal file
@@ -0,0 +1,12 @@
|
||||
#| This Dockerfile provides a compatibility check for ROCm docker container.
|
||||
ARG base_image
|
||||
FROM ${base_image}
|
||||
|
||||
MAINTAINER Peng Sun <peng.sun@amd.com>
|
||||
|
||||
COPY scripts/compatibility-check.sh /opt/rocm/bin/rocm-compatibility-test.sh
|
||||
RUN sudo chmod a+x /opt/rocm/bin/rocm-compatibility-test.sh
|
||||
ENTRYPOINT ["/opt/rocm/bin/rocm-compatibility-test.sh"]
|
||||
|
||||
# Default to a login shell
|
||||
CMD ["/bin/bash", "-l"]
|
||||
13
scripts/compatibility-check.sh
Executable file
13
scripts/compatibility-check.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
/opt/rocm/bin/rocminfo 2>&1 | /bin/grep "HSA Error" > /dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Error: Incompatible ROCm environment."
|
||||
echo "The Docker container requires the latest kernel driver to operate correctly."
|
||||
echo "Upgrade the ROCm kernel to v4.1 or newer, or use a container tagged for v4.0.1 or older."
|
||||
echo "For more information, see"
|
||||
echo "https://rocmdocs.amd.com/en/latest/Current_Release_Notes/Current-Release-Notes.html#"
|
||||
exit 1
|
||||
fi
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user