Code-server로 웹 기반 개발 환경 시작하기: Docker와 Code-server의 통합으로 확장된 클라우드 IDE 구축

Ma_Seokjae·2025년 1월 16일
post-thumbnail

이 글은 "Code-server로 웹 기반 개발 환경 시작하기" 시리즈의 두 번째이자 마지막 글로, Docker 컨테이너에서 Code-server를 실행하며 개발 환경을 확장하는 방법을 다룹니다.

첫 번째 글에서는 Code-server를 활용해 브라우저 기반의 VSCode 환경을 설정하는 방법을 알아봤습니다. 이제 Docker와의 통합을 통해 리소스 효율성과 확장성을 극대화하는 클라우드 IDE 환경을 완성하겠습니다.


실습 환경

  • 운영 체제: Mac M3 (Apple Silicon)
  • Docker 컨테이너 OS: Ubuntu 22.04 (Jammy)
  • 컨테이너 이름: ide (Code-server 실행 컨테이너)

주요 명령어와 개념

1. Docker 컨테이너 쉘 접속

docker exec -it ide bash
  • 설명:
    • Docker 컨테이너 idebash 쉘로 접속합니다.
    • 이를 통해 컨테이너 내부에서 명령어를 실행하고 환경을 설정할 수 있습니다.

2. APT 리포지터리 업데이트

apt-get update
  • 설명:
    • APT 패키지 관리 시스템의 패키지 목록을 최신 상태로 업데이트합니다.
    • 업데이트를 수행하지 않으면 최신 버전의 패키지를 설치하지 못하거나 의존성 문제가 발생할 수 있습니다.

3. 필수 패키지 설치

apt-get install -y ca-certificates curl
  • 설명:
    • ca-certificates: HTTPS 연결을 위해 필요한 인증서를 관리.
    • curl: 데이터를 전송하거나 URL 요청을 수행하는 도구.
    • 이 두 패키지는 Docker 리포지터리 설정 및 GPG 키 다운로드 과정에서 필요합니다.

4. Docker 리포지터리 설정 및 설치

1) GPG 키 설정

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
  • 설명:
    • Docker의 공식 GPG 키를 다운로드하여 /etc/apt/keyrings 디렉토리에 저장.
    • 이 키는 Docker 패키지의 무결성을 확인하고, 신뢰할 수 있는 소스에서 다운로드했음을 증명합니다.

2) Docker 리포지터리 설정

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable" | tee /etc/apt/sources.list.d/docker.list
  • 설명:
    • Docker의 패키지를 다운로드할 리포지터리 URL/etc/apt/sources.list.d/docker.list 파일에 저장합니다.
    • arch=amd64: x86_64 아키텍처에서 실행할 수 있도록 지정.
    • signed-by: GPG 키를 활용해 패키지 무결성 검증.

3) Docker 설치

apt-get update
apt-get install -y docker-ce docker-ce-cli
  • 설명:
    • docker-ce: Docker 커뮤니티 에디션, 컨테이너 실행 및 관리 도구.
    • docker-ce-cli: Docker 명령줄 인터페이스.

5. Docker 설치 확인

docker --version
  • 설명: Docker가 제대로 설치되었는지 확인합니다.
  • 결과 예시:

오류 해결 과정

1. Docker 리포지터리 URL에서 404 에러 발생

  • 문제: 리포지터리 설정 시 URL에 \ 문자가 포함되어 잘못된 경로가 설정됨.
  • 해결:
    • /etc/apt/sources.list.d/docker.list 파일을 열어 \ 문자를 제거.
    • 수정된 URL:
      deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable
      

2. APT 설치 중 "debconf: unable to initialize frontend" 에러

  • 문제: APT 패키지 설치 중 인터페이스(debconf) 관련 오류 발생.
  • 해결: 비대화형 설정으로 APT 실행:
    DEBIAN_FRONTEND=noninteractive apt-get install -y <패키지명> 

최종 실습 흐름

1. Docker 컨테이너 쉘 접속:

docker exec -it ide bash

2. APT 리포지터리 업데이트:

apt-get update

3. 필수 패키지 설치:

apt-get install -y ca-certificates curl

4. GPG 키 설정 및 저장:

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

5. Docker 리포지터리 설정:

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable" | tee /etc/apt/sources.list.d/docker.list

6. APT 리포지터리 업데이트:

apt-get update

7. Docker 설치:

apt-get install -y docker-ce docker-ce-cli

8. Docker 버전 확인:

docker --version

향후 실수를 방지하는 팁

  1. GPG 키 및 리포지터리 설정 검증:
    • GPG 키가 올바르게 설정되었는지 확인:
      ls /etc/apt/keyrings/docker.asc
    • 리포지터리 설정 확인:
      cat /etc/apt/sources.list.d/docker.list
  2. APT 설치 중 비대화형 설정 사용:
    • 터미널 환경에서 대화형 오류를 피하려면 다음 명령어 사용:
      DEBIAN_FRONTEND=noninteractive apt-get install -y <패키지명>
  3. 리포지터리 URL 검증:
    • URL이 정확하지 않으면 404 에러가 발생합니다. 공식 문서를 참조해 항상 최신 정보를 확인하세요:
      • Docker 설치 가이드

결론

이 과정을 통해 Docker 컨테이너에서 Code-server를 실행하고, 필요한 소프트웨어를 설치하여 확장된 개발 환경을 구축할 수 있었습니다.

이제 브라우저 기반의 클라우드 IDE 환경을 보다 강력하고 확장 가능하게 활용할 수 있습니다. 이 시리즈가 여러분의 클라우드 개발 환경 구축에 유용하기를 바랍니다!

profile
Why not change the code?

0개의 댓글