전에 활용했던 서버에서 vscode가 잘 작동하지 않아서 추가로 테스트해본 결과이다.

GitHub - ufoym/deepo: Setup and customize deep learning environment in seconds.
Setup and customize deep learning environment in seconds. - GitHub - ufoym/deepo: Setup and customize deep learning environment in seconds.

docker 이미지를 만들어보자.

FROM ufoym/deepo:latest
RUN apt-get update && \
    apt-get upgrade -y

RUN apt-get install -y zsh && \
    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

RUN curl -fsSL https://code-server.dev/install.sh | sh

RUN apt install curl dirmngr apt-transport-https \
    lsb-release ca-certificates -y && \
    apt install nodejs -y && \
    apt install npm -y

RUN   curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh && \
    bash nodesource_setup.sh  && \
    apt install nodejs -y && \
    npm install -g npm  -y

RUN pip uninstall enum34 -y  && \
    pip install pytorch_lightning mxnet-cu112 deepchem wandb \
    typing_extensions tensorflow-gpu pylint pydantic \
    immutables astroid importlib-metadata \
    jedi jedi-language-server \
    jupyterlab_widgets jupyterlab-git \
    jupyterlab_latex  lckr-jupyterlab-variableinspector \
    jupyterlab-drawio jupyterlab-system-monitor \
    jupyterlab-kernelspy \
    jupyterlab_execute_time\
    ipyleaflet \
    jupyterlab-drawio


RUN jupyter labextension update --all && \
    jupyter labextension install jupyterlab-kernelspy && \
    jupyter labextension install @jupyter-widgets/jupyterlab-manager && \
    jupyter labextension install jupyterlab-drawio && \
    jupyter nbextension enable --py --sys-prefix ipyleaflet && \
    jupyter lab build
docker build -t my_deepo .

도커 이미지가 만들어졌다면 이를 실행해보자.

docker run -d --gpus all -it \
  -p 8888:8888  -p 8889:8889 \  
  --name lab --restart=unless-stopped \  
  -v /project/data:/root/data \  
  -v /project:/root \
  --ipc=host my_deepo jupyter lab  \
  --no-browser --ip=0.0.0.0 --allow-root --LabApp.allow_origin='*' --LabApp.root_dir='/root'

도커 이미지가 실행되었다면 VSCODE를 실행해보자.

docker exec -it lab bash

vim ~/.config/code-server/config.yaml

아래 내용을 수정하자 bind-addr 의 0.0.0.0 은 모든 호스트를 허용한다는 의미이며, password는 접속 비밀번호다.

bind-addr: 0.0.0.0:8889
auth: password
password: 비밀번호
cert: false

자 이제 docker 내부에서 vscode를 실행하고 나올 예정이다. code-server 를 입력하면 vscode가 실행된다. 여기서 꺼버리면 서버가 중지되므로 ctrl+z > bg > disown -h 순으로 명령어를 입력하고 exit로 나오면 끝이난다.