# syntax=docker/dockerfile:1 # vim: filetype=dockerfile # -*- mode: dockerfile -*- # # dockerfile to build working perl/mxnet with GPU support FROM nvidia/cuda:11.1.1-cudnn8-devel AS build WORKDIR /usr/src/mxnet RUN <> /etc/profile.d/99-cuda-library-path.sh echo export XDG_RUNTIME_DIR=/tmp/xdg_runtime_\`whoami\` >> /etc/profile.d/99-gnuplot-xdg-path.sh echo mkdir \$XDG_RUNTIME_DIR 2\>/dev/null >> /etc/profile.d/99-gnuplot-xdg-path.sh export DEBIAN_FRONTEND=noninteractive apt update apt install -y \ wget unzip sudo \ openssh-server x11-apps net-tools vim \ libmouse-perl pdl cpanminus libgraphviz-perl libpdl-graphics-gnuplot-perl \ libpdl-ccs-perl libfunction-parameters-perl \ libperlio-gzip-perl libgtk2-perl apt-get clean cpanm -q Hash::Ordered rm -rf /root/.cpanm sed -i "s/^.*X11Forwarding.*$/X11Forwarding yes/" /etc/ssh/sshd_config sed -i "s/^.*X11UseLocalhost.*$/X11UseLocalhost no/" /etc/ssh/sshd_config grep "^X11UseLocalhost" /etc/ssh/sshd_config || echo "X11UseLocalhost no" >> /etc/ssh/sshd_config useradd -m -s /bin/bash mxnet echo "mxnet:mxnet" | chpasswd touch /home/mxnet/.Xauthority chown mxnet:mxnet /home/mxnet/.Xauthority chmod 600 /home/mxnet/.Xauthority adduser mxnet sudo PREP RUN --mount=from=build,src=/,dst=/mnt < /root/startup.sh #!/bin/bash echo -e "\n==== ===== =======\nPerl/MXNet startup\n==== ===== =======\n" ln -s /dev/null /dev/raw1394 2>/dev/null mkdir /tmp/runtime-mxnet 2>/dev/null cat /etc/*elease echo ifconfig -a | perl -ne 'if (/^\s+inet\s+(\d\S+\d)\s/) { print "IP: $1\n"; }' echo service ssh start echo bash $* STARTUP chmod 755 /root/startup.sh COPYING EXPOSE 22/tcp WORKDIR /root ENTRYPOINT ["/root/startup.sh"]