-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker cleanup #1946
Docker cleanup #1946
Changes from all commits
07f7d31
bb6db7b
0b014cf
0a60288
c007199
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
.git* | ||
ros/build* | ||
ros/devel* | ||
ros/install* | ||
ros/log* | ||
ros/coverage_* |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
ARG FROM_ARG | ||
ARG ROS_DISTRO | ||
FROM ${FROM_ARG} | ||
|
||
ENV USERNAME autoware | ||
|
||
# Build Autoware | ||
COPY --chown=autoware ./ /home/$USERNAME/Autoware | ||
RUN su -c "bash -c 'source /opt/ros/$ROS_DISTRO/setup.bash; \ | ||
cd /home/$USERNAME/Autoware/ros; \ | ||
./colcon_release'" $USERNAME | ||
RUN echo "source /home/$USERNAME/Autoware/ros/install/local_setup.bash" >> \ | ||
/home/$USERNAME/.bashrc | ||
|
||
COPY ./docker/generic/entrypoint.sh /tmp | ||
ENTRYPOINT ["/tmp/entrypoint.sh"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# | ||
# Install ROS packages used by Autoware. | ||
# | ||
ARG ROS_DISTRO | ||
FROM ros:$ROS_DISTRO | ||
|
||
# | ||
# Install tools and libraries required by Autoware | ||
# | ||
RUN apt-get update && apt-get install -y \ | ||
cmake-curses-gui \ | ||
cmake-qt-gui \ | ||
dbus-x11 \ | ||
dmz-cursor-theme \ | ||
fonts-dejavu \ | ||
gconf2 \ | ||
gnome-terminal \ | ||
gstreamer0.10-plugins-good \ | ||
language-pack-en \ | ||
libarmadillo-dev \ | ||
libcanberra-gtk-module \ | ||
libcanberra-gtk3-0 \ | ||
libcanberra-gtk3-module \ | ||
libdbus-glib-1-2 \ | ||
libgflags-dev \ | ||
libglew-dev \ | ||
libgoogle-glog-dev \ | ||
libgoogle-perftools-dev \ | ||
libgsl0-dev \ | ||
libmosquitto-dev \ | ||
libopencv-dev \ | ||
libopenni2-dev \ | ||
libpcap-dev \ | ||
libssh2-1-dev \ | ||
locales \ | ||
pulseaudio \ | ||
python-flask \ | ||
python-requests \ | ||
python3-colcon-common-extensions \ | ||
python3-pip \ | ||
python3-setuptools \ | ||
sudo \ | ||
tmux \ | ||
v4l-utils \ | ||
vim \ | ||
wget && \ | ||
pip3 install -U setuptools && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# | ||
# Configure environmet | ||
# | ||
|
||
RUN update-locale LANG=en_US.UTF-8 LC_MESSAGES=POSIX | ||
|
||
# Add user | ||
ENV USERNAME autoware | ||
ARG USER_ID=1000 | ||
ARG GROUP_ID=15214 | ||
ENV PULSE_SERVER /run/pulse/native | ||
|
||
RUN groupadd --gid $GROUP_ID $USERNAME && \ | ||
useradd --gid $GROUP_ID -m $USERNAME && \ | ||
echo "$USERNAME:$USERNAME" | chpasswd && \ | ||
usermod --shell /bin/bash $USERNAME && \ | ||
usermod -aG sudo $USERNAME && \ | ||
usermod --uid $USER_ID $USERNAME && \ | ||
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USERNAME && \ | ||
chmod 0440 /etc/sudoers.d/$USERNAME | ||
|
||
# Startup scripts | ||
ENV LANG="en_US.UTF-8" | ||
RUN echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> /etc/profile.d/ros.sh && \ | ||
# Fix for QT and X server errors | ||
echo "export QT_X11_NO_MITSHM=1" >> /etc/profile.d/autoware.sh && \ | ||
# Set defaut language | ||
echo "export LANG=\"en_US.UTF-8\"" >> /etc/profile.d/autoware.sh | ||
|
||
# | ||
# Install ROS packages used by Autoware | ||
# | ||
COPY ./docker/generic/dependencies /tmp/dependencies | ||
RUN apt-get update && \ | ||
sed "s/\$ROS_DISTRO/$ROS_DISTRO/g" "/tmp/dependencies" | xargs apt-get install -y && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
RUN su -c "rosdep update" autoware | ||
|
||
# Configure terminal colors | ||
RUN su -c "gconftool-2 --set \"/apps/gnome-terminal/profiles/Default/use_theme_background\" --type bool false" autoware && \ | ||
su -c "gconftool-2 --set \"/apps/gnome-terminal/profiles/Default/use_theme_colors\" --type bool false" autoware && \ | ||
su -c "gconftool-2 --set \"/apps/gnome-terminal/profiles/Default/background_color\" --type string \"#000000\"" autoware | ||
|
||
COPY ./docker/generic/entrypoint.sh /tmp | ||
ENTRYPOINT ["/tmp/entrypoint.sh"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
ARG FROM_ARG | ||
FROM ${FROM_ARG} | ||
USER root | ||
|
||
|
||
# From nvidia cuda 9.0 base: https://gitlab.com/nvidia/cuda/tree/ubuntu16.04/9.0/base/Dockerfile | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates apt-transport-https gnupg-curl && \ | ||
rm -rf /var/lib/apt/lists/* && \ | ||
NVIDIA_GPGKEY_SUM=d1be581509378368edeec8c1eb2958702feedf3bc3d17011adbf24efacce4ab5 && \ | ||
NVIDIA_GPGKEY_FPR=ae09fe4bbd223a84b2ccfce3f60f4b3d7fa2af80 && \ | ||
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub && \ | ||
apt-key adv --export --no-emit-version -a $NVIDIA_GPGKEY_FPR | tail -n +5 > cudasign.pub && \ | ||
echo "$NVIDIA_GPGKEY_SUM cudasign.pub" | sha256sum -c --strict - && rm cudasign.pub && \ | ||
echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list && \ | ||
echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list | ||
|
||
ENV CUDA_VERSION 9.0.176 | ||
|
||
ENV CUDA_PKG_VERSION 9-0=$CUDA_VERSION-1 | ||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
cuda-cudart-$CUDA_PKG_VERSION && \ | ||
ln -s cuda-9.0 /usr/local/cuda && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ | ||
echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf | ||
|
||
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} | ||
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64 | ||
|
||
# nvidia-container-runtime | ||
ENV NVIDIA_VISIBLE_DEVICES all | ||
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility | ||
ENV NVIDIA_REQUIRE_CUDA "cuda>=9.0" | ||
|
||
|
||
# From nvidia cuda 9.0 runtime: https://gitlab.com/nvidia/cuda/blob/ubuntu16.04/9.0/runtime/Dockerfile | ||
|
||
ENV NCCL_VERSION 2.3.7 | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
cuda-libraries-$CUDA_PKG_VERSION \ | ||
cuda-cublas-9-0=9.0.176.4-1 \ | ||
libnccl2=$NCCL_VERSION-1+cuda9.0 && \ | ||
apt-mark hold libnccl2 && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# From nvidia cuda 9.0 devel: https://gitlab.com/nvidia/cuda/blob/ubuntu16.04/9.0/devel/Dockerfile | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
cuda-libraries-dev-$CUDA_PKG_VERSION \ | ||
cuda-nvml-dev-$CUDA_PKG_VERSION \ | ||
cuda-minimal-build-$CUDA_PKG_VERSION \ | ||
cuda-command-line-tools-$CUDA_PKG_VERSION \ | ||
cuda-core-9-0=9.0.176.3-1 \ | ||
cuda-cublas-dev-9-0=9.0.176.4-1 \ | ||
libnccl-dev=$NCCL_VERSION-1+cuda9.0 && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs | ||
|
||
# Support for Nvidia docker v2 | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
pkg-config \ | ||
libxau-dev \ | ||
libxdmcp-dev \ | ||
libxcb1-dev \ | ||
libxext-dev \ | ||
libx11-dev && \ | ||
rm -rf /var/lib/apt/lists/* | ||
COPY --from=nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04 \ | ||
/usr/local/lib/x86_64-linux-gnu \ | ||
/usr/lib/x86_64-linux-gnu | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why the change to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @esteve that change was made to address a duplication problem: filiperinaldi#10 |
||
COPY --from=nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04 \ | ||
/usr/local/share/glvnd/egl_vendor.d/10_nvidia.json \ | ||
/usr/local/share/glvnd/egl_vendor.d/10_nvidia.json | ||
RUN echo '/usr/local/lib/x86_64-linux-gnu' >> /etc/ld.so.conf.d/glvnd.conf && \ | ||
ldconfig | ||
RUN apt-get update | ||
# nvidia-container-runtime | ||
ENV NVIDIA_VISIBLE_DEVICES \ | ||
${NVIDIA_VISIBLE_DEVICES:-all} | ||
ENV NVIDIA_DRIVER_CAPABILITIES \ | ||
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics | ||
|
||
ENTRYPOINT ["/tmp/entrypoint.sh"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job! This is where I want to add.