모델 재구현 환경을 만들어야 하기 때문에 GPU 를 연결해야 하여 nvidia docker를 설치해준다.
Nvidia Docker 공식 설치 에서 설치를 위한 명령어를 확인할 수 있다.
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 데몬 재시작
sudo systemctl restart docker
# 환경 전체를 파일로
conda env export > environment.yaml
# 설치된 패키지 정보만 파일로
conda list --explicit > package-list.txt
sudo docker run --rm --gpus all nvidia/cuda:11.7.1-base-ubuntu22.04 nvidia-smi
본 명령어는 docker상에 NVIDIA 드라이브가 인식되어 있는지 확인하기 위해 입력한다.
정상적인 실행을 마치면 아래와 같은 화면이 나와야 하지만,

이런 에러가 뜬다면 도커 리스타트를 하고 다시 실행시키는 걸 권장한다.

FROM nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
ccache \
cmake \
curl \
git \
libfreetype6-dev \
libhdf5-serial-dev \
libzmq3-dev \
libjpeg-dev \
libpng-dev \
libsm6 \
libxext6 \
libxrender-dev \
pkg-config \
software-properties-common \
ssh \
sudo \
unzip \
vim \
wget
RUN rm -rf /var/lib/apt/lists/*
ENV LD_LIBRARY_PATH /usr/local/cuda-${CUDA}/targets/x86_64-linux/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
echo "/usr/local/cuda/lib64/stubs" > /etc/ld.so.conf.d/z-cuda-stubs.conf && \
ldconfig
# set timezone
ENV TZ=Asia/Seoul
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
ADD . /app
WORKDIR /app
# Install miniconda3
ENV LANG C.UTF-8
RUN curl -o /tmp/miniconda.sh -sSL http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
chmod +x /tmp/miniconda.sh && \
bash /tmp/miniconda.sh -bfp /usr/local && \
rm /tmp/miniconda.sh && \
conda init bash && \
conda update -n base -c defaults conda
SHELL ["/bin/bash", "-c"]
ARG PYTHON_VERSION=3.8
ARG CONDA_ENV_NAME=
# RUN conda create -n ${CONDA_ENV_NAME} --file package-list.txt python=${PYTHON_VERSION} -y
RUN conda env create -f /app/environment.yaml
ENV PATH /usr/local/envs/$CONDA_ENV_NAME/bin:$PATH
RUN echo "source activate ${CONDA_ENV_NAME}" >> ~/.bashrc