[Docker] code-server
# Dockerfile
FROM ubuntu:latest
# ----- 기본 패키지 설치 -----
RUN apt-get update && \
apt-get install -y \
curl sudo python3 python3-pip default-jdk \
git wget nano locales \
libpython3.10 libicu-dev libxml2-dev clang \
unzip gnupg2 libcurl4-openssl-dev pkg-config \
&& apt-get clean
# ----- 로케일 설정 -----
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
# ----- ARG로 외부에서 변수 받기 -----
ARG USER
ARG PASSWORD
# ----- 사용자 생성 및 sudo 권한 부여 -----
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 -p ${WORKINGDIR} && chown -R ${USER}:${USER} ${WORKINGDIR}
# ----- 컨테이너 환경변수로도 유지 -----
ENV PASSWORD=${PASSWORD}
ENV USER=${USER}
# ----- 사용자 전환 -----
USER ${USER}
WORKDIR ${WORKINGDIR}
# ----- VSCode 확장 설치 -----
RUN code-server --install-extension ms-python.python && \
code-server --install-extension ms-azuretools.vscode-docker && \
code-server --install-extension formulahendry.code-runner
# ----- 포트 오픈 -----
EXPOSE 8080
# ----- code-server 실행 -----
CMD ["code-server", "--bind-addr", "0.0.0.0:8080", "--auth", "password", "."]
# 컨테이너 터미널로 진입
docker exec -it vscode-container bash
# 이동
cd /home/ec2-user/.local/share/code-server/User
nano settings.json
{
"code-runner.executorMap": {
"python": "python3 -u",
"swift": "/home/ec2-user/.local/share/swiftly/bin/swift"
},
"code-runner.showExecutionMessage": false,
"code-runner.clearPreviousOutput": true
}
# 저장
ctrl + o
enter
ctrl x
# 나가고 재빌드
exit
docker compose up -d --build
swift 추가
# 컨테이너 터미널로 진입
docker exec -it vscode-container bash
# 1. 기존 swiftly 완전 삭제
rm -rf ~/.local/share/swiftly
rm -f ~/swiftly
# 2. 필수 패키지 설치
sudo apt-get update
sudo apt-get install -y clang libicu-dev wget libpython3-dev
# 3. 최신 swiftly 설치
curl -O "https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz"
tar zxf "swiftly-$(uname -m).tar.gz"
chmod +x swiftly
./swiftly init --quiet-shell-followup --assume-yes
# 4. 환경 변수 적용
source ~/.local/share/swiftly/env.sh
echo 'source ~/.local/share/swiftly/env.sh' >> ~/.bashrc
# 5. Swift 6.1.0 설치 (실제 toolchain 다운로드)
~/.local/share/swiftly/bin/swiftly install 6.1.0 --assume-yes --verify
# 6. swift 실행 확인
find ~/.local/share/swiftly/toolchains -name swift -type f -executable
swift --version
Leave a comment