문서정보 : 2023.04.27.-05.09. 작성, 작성자 @SAgiKPJH
VSCode Server를 Docker로 돌립니다.
- : VSCode Server를 내포하는 Dockerfile을 구성합니다.
- : Docker Hub - Linux VSCode server
- : 보다 높은 성능을 위한 내용
다음 조건을 만족하는 VSCode Server Docker를 구성합니다.
- vscode server 아이디 사전에 설정 가능
- vscode server 비밀번호 사전에 설정 가능
- 확장 설치 설정 가능
- 원하는 포트에 서비스 가능
- vscode server 이미 실행되어 있게 구성
다음과 같이 dockerfile을 구성합니다.
이때, code-server를 백그라운드에서 실행하기 위해 nohup
명령어를 활용하였습니다.
FROM ubuntu:latest
# 필요한 패키지 설치, cache 비우기
RUN apt-get update && \
apt-get install -y curl sudo
# 새로운 사용자 생성 및 비밀번호 설정
ENV USER="user" \
PASSWORD="password"
RUN useradd -m ${USER} && echo "${USER}:${PASSWORD}" | chpasswd && adduser ${USER} sudo
# code-server 설치 및 세팅
ENV WORKINGDIR="/home/${USER}/vscode"
RUN curl -fsSL https://code-server.dev/install.sh | sh && \
mkdir ${WORKINGDIR}
# 확장 설치
RUN code-server --install-extension "ms-python.python" \
--install-extension "ms-azuretools.vscode-docker"
# code-server 시작
ENTRYPOINT nohup code-server --bind-addr 0.0.0.0:8080 --auth password ${WORKINGDIR}
# docker build --no-cache -t vscode-docker .
# docker run -it --name vscode-container -p 8080:8080 vscode-docker
설치하고자 하는 확장은 https://marketplace.visualstudio.com/items?itemName=ms-python.python 사이트에 들어가 Unique Identifier
항목을 찾아 입력합니다.
vscode-docker
라는 이름의 Docker Image를 만듭니다.
빌드가 오래걸릴경우, --progress=plain
옵션을 추가하여 과정을 텍스트로 출력합니다.
docker build -t vscode-docker .
docker build --progress=plain -t vscode-docker .
docker run -it --name vscode-container -p 8080:8080 vscode-docker
- docker hub에선 linux 기반 vscode server를 제공하는 image가 있다. https://hub.docker.com/r/linuxserver/code-server
- 이 이미지를 run하여 docker server를 내포하는 docker를 실행할 수 있다.
- 보안성 및 이미지 용량을 줄이기 위해 다음과 같이 구성할 수 있습니다.
- 보안을 위해 User로 실행하고 User로 접근합니다.
- 불필요한 파일을 삭제하여 용량을 최소화 합니다.
# Base Image FROM ubuntu:latest # 필요한 패키지 설치, cache 비우기 RUN apt-get update && \ apt-get install -y curl sudo && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # 새로운 사용자 생성 및 비밀번호 설정 ENV USER="user" \ PASSWORD="password" RUN useradd -m ${USER} && echo "${USER}:${PASSWORD}" | chpasswd && adduser ${USER} sudo && \ sed -i "/^root/ c\root:!:18291:0:99999:7:::" /etc/shadow # code-server 설치 및 세팅 ENV WORKINGDIR="/home/${USER}/vscode" RUN curl -fsSL https://code-server.dev/install.sh | sh && \ mkdir ${WORKINGDIR} && \ su ${USER} -c "code-server --install-extension ms-python.python \ --install-extension ms-azuretools.vscode-docker" && \ rm -rf ${WORKINGDIR}/.local ${WORKINGDIR}/.cache # code-server 시작 USER ${USER} ENTRYPOINT nohup code-server --bind-addr 0.0.0.0:8080 --auth password ${WORKINGDIR} # docker build -t vscode-docker . # docker run -it --name vscode-container -p 8080:8080 vscode-docker