github.com/sentienttechnologies/studio-go-runner@v0.0.0-20201118202441-6d21f2ced8ee/Dockerfile_developer (about) 1 FROM ubuntu:18.04 2 3 MAINTAINER karlmutch@gmail.com 4 5 ENV LANG C.UTF-8 6 ENV DEBIAN_FRONTEND noninteractive 7 8 ENV CUDA_PACKAGE_VERSION 10-1 9 ENV CUDA_FILESYS_VERSION 10.1 10 ENV NVIDIA_VERSION 440 11 12 RUN apt-get update && \ 13 apt-get install -y locales && \ 14 apt-get install -y language-pack-en && \ 15 update-locale "en_US.UTF-8" && \ 16 apt-get install -y --no-install-recommends ca-certificates apt-transport-https apt-utils && \ 17 apt-get install -y --no-install-recommends openssl ssh wget curl lshw jq htop vim pkg-config unzip gnupg2 && \ 18 apt-get install -y --no-install-recommends libopenblas-base && \ 19 apt-get -y upgrade && \ 20 apt-get clean 21 22 RUN mkdir /usr/lib/nvidia && \ 23 cd /tmp && \ 24 apt-get install -y freeglut3 freeglut3-dev libxi-dev libxmu-dev && \ 25 apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub && \ 26 wget -q -O /tmp/cuda.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb && \ 27 dpkg -i /tmp/cuda.deb && \ 28 apt-get -y update 29 30 RUN apt-get -y install --no-install-recommends nvidia-cuda-dev && \ 31 apt-get -y install --no-install-recommends cuda-nvml-dev-${CUDA_PACKAGE_VERSION} && \ 32 apt-get clean 33 34 RUN \ 35 ls /usr/lib | grep nvidia && \ 36 ln -s /usr/local/cuda-${CUDA_FILESYS_VERSION} /usr/local/cuda && \ 37 ln -s /usr/local/cuda/targets/x86_64-linux/include /usr/local/cuda/include && \ 38 ln -s /usr/lib/nvidia-${NVIDIA_VERSION}/libnvidia-ml.so /usr/lib/nvidia/libnvidia-ml.so && \ 39 ln -s /usr/lib/nvidia-${NVIDIA_VERSION}/libnvidia-ml.so.1 /usr/lib/nvidia/libnvidia-ml.so.1 && \ 40 ln -s /usr/lib/nvidia-${NVIDIA_VERSION}/libnvidia-ml.so.${NVIDIA_VERSION}.33.01 /usr/lib/nvidia/libnvidia-ml.so.${NVIDIA_VERSION}.33.01 && \ 41 apt-get -y install --no-install-recommends libcuinj64-9.1 && \ 42 rm /tmp/cuda*.deb && \ 43 apt-get -y autoclean && \ 44 apt-get -y autoremove && \ 45 apt-get clean 46 47 # Install the runtime components for nvidia 48 49 RUN \ 50 rm -rf /var/lib/apt/lists/* && \ 51 echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list && \ 52 echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list && \ 53 apt-get update 54 55 RUN apt-get install -y --no-install-recommends \ 56 cuda-cudart-10-1 \ 57 cuda-cufft-10-1 \ 58 cuda-curand-10-1 \ 59 cuda-cusolver-10-1 \ 60 cuda-cusparse-10-1 \ 61 cuda-libraries-10-1 \ 62 libcublas10=10.2.1.243-1 63 64 RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \ 65 echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf 66 67 RUN apt-get install -y libssl-dev zlib1g-dev \ 68 libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \ 69 libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl \ 70 libopenblas-base libopenblas-dev \ 71 git build-essential 72 73 # Protobuf version 74 ENV PROTOBUF_VERSION="3.12.3" 75 ENV PROTOBUF_ZIP=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip 76 ENV PROTOBUF_URL=https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOBUF_ZIP} 77 78 RUN wget ${PROTOBUF_URL} && \ 79 unzip ${PROTOBUF_ZIP} -d /usr && \ 80 chmod +x /usr/bin/protoc && \ 81 find /usr/include/google -type d -print0 | xargs -0 chmod ugo+rx && \ 82 chmod -R +r /usr/include/google 83 84 ENV USER {{.duat.userName}} 85 ENV USER_ID {{.duat.userID}} 86 ENV USER_GROUP_ID {{.duat.userGroupID}} 87 ENV RUNNER_BUILD_LOG {{ env "RUNNER_BUILD_LOG" | default "build.log" }} 88 89 RUN groupadd -f -g ${USER_GROUP_ID} $USER} && \ 90 useradd -g ${USER_GROUP_ID} -u ${USER_ID} -ms /bin/bash ${USER} 91 92 USER ${USER} 93 WORKDIR /home/${USER} 94 95 ENV GOPATH=/project 96 ENV PATH=$GOPATH/bin:$PATH 97 ENV PATH=$PATH:/home/${USER}/.local/bin:/home/${USER}/go/bin:/home/${USER}/.pyenv/bin 98 ENV GOROOT=/home/${USER}/go 99 ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia:/usr/lib/nvidia-${NVIDIA_VERSION} 100 101 RUN \ 102 curl https://pyenv.run | /bin/bash && \ 103 export PATH=$HOME/.pyenv/bin:$PATH && \ 104 echo "export PATH=\"$HOME/.pyenv/bin:$PATH\"" >> $HOME/.bashrc && \ 105 echo "eval \"\$(pyenv init -)\"" >> $HOME/.bashrc && \ 106 echo "eval \"\$(pyenv virtualenv-init -)\"" >> $HOME/.bashrc && \ 107 eval "$(pyenv init -)" && \ 108 eval "$(pyenv virtualenv-init -)" && \ 109 pyenv install --list | grep " 3\.[5678]" && \ 110 pyenv install 3.8.3 && \ 111 pyenv global 3.8.3 112 113 RUN \ 114 eval "$(pyenv init -)" && \ 115 eval "$(pyenv virtualenv-init -)" && \ 116 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ 117 python3 get-pip.py pip==20.1 setuptools==44.0.0 wheel==0.33.6 && \ 118 pip3 install pyopenssl cryptography --upgrade 119 120 ENV GO_VERSION 1.14.4 121 122 RUN \ 123 cd /home/${USER} && \ 124 mkdir -p /home/${USER}/go && \ 125 wget -q -O /tmp/go.tgz https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz && \ 126 tar xzf /tmp/go.tgz && \ 127 rm /tmp/go.tgz 128 129 RUN \ 130 mkdir -p /home/${USER}/.local/bin && \ 131 wget -q -O /home/${USER}/.local/bin/minio https://dl.minio.io/server/minio/release/linux-amd64/minio && \ 132 chmod +x /home/${USER}/.local/bin/minio 133 134 VOLUME /project 135 WORKDIR /project/src/github.com/leaf-ai/studio-go-runner 136 137 # delete the following once initial test is running 138 # 139 ENV AMQP_URL "amqp://guest:guest@${RABBITMQ_SERVICE_SERVICE_HOST}:${RABBITMQ_SERVICE_SERVICE_PORT}/%2f?connection_attempts=2&retry_delay=.5&socket_timeout=5" 140 141 CMD /bin/bash -c 'source ./base-build.sh' 142 143 # Done last to prevent lots of disruption when bumping versions 144 LABEL vendor="Cognizant, AI&A" \ 145 dev.cognizant-ai.module.version={{.duat.version}} \ 146 dev.cognizant-ai.module.name={{.duat.module}}