はじめに
駆け出しインフラエンジニア用ハイパーマイナーな記事です。調べてもまとまって出てこない情報だったのでメモがてら残しておく。
docker file
- 初めに、Dockerfileを出しておきます。
- userだけkubeflowに合わせるのを忘れずにする。
- ベースのdockerimageは環境に合わせましょう。
- code-server.debはDocker build中にエラーを吐いてしまsったので、事前にダウンロードしておく。
FROM nvidia/cuda:11.4.2-cudnn8-devel-ubuntu20.04
ARG DOCKER_UID=1000
ARG DOCKER_GID=100
ARG DOCKER_USER=jovyan
ARG DOCKER_PASSWORD=jovyan
RUN useradd -m --uid ${DOCKER_UID} -g ${DOCKER_GID} --groups sudo ${DOCKER_USER} \
&& echo ${DOCKER_USER}:${DOCKER_PASSWORD} | chpasswd
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
sudo \
cmake \
git \
wget \
libatlas-base-dev \
libboost-all-dev \
libgflags-dev \
libgoogle-glog-dev \
libhdf5-serial-dev \
libleveldb-dev \
liblmdb-dev \
libprotobuf-dev \
libsnappy-dev \
protobuf-compiler \
python3-dev \
python3-pip \
python3-setuptools \
python3-tk \
python3-matplotlib \
less \
aptitude \
software-properties-common \
ssh \
unzip \
qt5-default \
qttools5-dev-tools \
libqt5widgets5 \
glew-utils \
libglew-dev \
libglm-dev \
tcsh \
aptitude \
freeglut3-dev \
libgl1-mesa-dev \
libqt5opengl5-dev \
libcanberra-gtk-dev \
libcanberra-gtk-module \
libgtest-dev \
emacs \
spyder \
valgrind && \
rm -rf /var/lib/apt/lists/*
# cmake
RUN pip3 install numpy==1.18.2
RUN pip3 install pillow==7.1.1 ipython==7.13.0 matplotlib==1.5.1
# for python profiling
RUN pip3 install line_profiler==3.0.2 && \
pip3 install pyprof2calltree==1.4.4
RUN pip3 install scipy==1.4.1
RUN pip3 install --upgrade pip==20.0.2 setuptools==46.1.3
RUN pip3 install tensorflow-gpu==2.7.0
RUN pip3 install keras==2.7.0
RUN pip3 install opencv-python
RUN pip3 install opencv-contrib-python
RUN pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
RUN pip install pandas
RUN pip install tqdm
RUN pip install albumentations
RUN pip install sklearn
RUN pip install seaborn
RUN pip install tensorboard
RUN pip install hydra-core
RUN pip install tensorflow-model-optimization
# args - software versions
# renovate: datasource=github-tags depName=cdr/code-server versioning=semver
ARG CODESERVER_VERSION=v4.6.1
# install - code-server
# CMD ["/bin/bash"]
# RUN /bin/bash curl -sL "https://github.com/cdr/code-server/releases/download/${CODESERVER_VERSION}/code-server_${CODESERVER_VERSION/v/}_amd64.deb" -o /tmp/code-server.deb
COPY code-server_4.6.1_amd64.deb /tmp/code-server.deb
RUN dpkg -i /tmp/code-server.deb \
&& rm -f /tmp/code-server.deb
# # RUN wget https://github.com/cdr/code-server/releases/download/${CODESERVER_VERSION}/code-server_${CODESERVER_VERSION/v/}_amd64.deb -p /tmp/code-server.deb
# RUN curl -fsSL https://code-server.dev/install.sh | sh && \
# rm -rf "${HOME}/.cache"
# # install - codeserver extensions
ARG CODESERVER_GITLENS_VERSION=11.4.1
ARG CODESERVER_GIT_GRAPH_VERSION=1.30.0
RUN code-server --install-extension "ms-python.python" \
&& code-server --install-extension "ms-toolsai.jupyter" \
&& code-server --install-extension "TabNine.tabnine-vscode" \
&& code-server --install-extension "njpwerner.autodocstring" \
&& code-server --install-extension "eamodio.gitlens@${CODESERVER_GITLENS_VERSION}" \
&& code-server --install-extension "mhutchie.git-graph@${CODESERVER_GIT_GRAPH_VERSION}"
USER ${DOCKER_USER}
EXPOSE 8888
ENV NB_PREFIX /
ENTRYPOINT ["/init"]
extensionの探し方
- vscodeのマーケットプレイスで検索する
- URLのitemName=以降をコピーする
- ↓のコードブロックを参考。
- dockerfileに書き込む
https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode