Code Tunnel Image

일반적인 설치

# cpu 타입 확인
lscpu | grep -i architecture

설치파일

도커파일 작성

FROM node:current-slim

# Bun 및 VS Code CLI 설치에 필요한 최소 도구 설치
RUN apt-get update && apt-get install -y \
    curl \
    unzip \
    && rm -rf /var/lib/apt/lists/*

# 1. Bun 설치
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"

# 2. VS Code CLI (Tunnel) 설치
# x64(인텔/AMD 64비트) 아키텍처용 바이너리를 다운로드하여 /usr/local/bin에 배치합니다.
RUN curl -Lk 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz \
    && tar -xf vscode_cli.tar.gz \
    && mv code /usr/local/bin/ \
    && rm vscode_cli.tar.gz

WORKDIR /app

# 3. 컨테이너 시작 시 터널 자동 실행 (약관 동의 및 로그인 대기 상태)
# --accept-server-license-terms 옵션으로 약관 동의 절차를 자동 통과시킵니다.
# CMD ["code", "tunnel", "--accept-server-license-terms"]
# 직접 터미널에 들어가서 인증하는게 좋겠다.
# docker compose exec bun_dev /bin/sh

도커컴포즈 작성

services:
  bun_dev:
    # 1. 빌드 설정 (현재 디렉토리의 Dockerfile을 사용하여 이미지 생성)
    build:
      context: .
      dockerfile: Dockerfile
    
    # 이미지 이름설정 
    image: node/bun

    # 2. 컨테이너 이름 설정
    container_name: bun_dev
    
    # 3. 포트 매핑 (명령어에 있던 3000과 4321 포트)
    ports:
      - "3000:3000"
      - "4321:4321"
    
    # 4. 볼륨 설정 ($PWD를 /app에 연결하여 로컬 수정사항 실시간 반영)
    volumes:
    # 중요: 터널 인증 정보 및 설정 보존용 볼륨
      - ./vscode/cli:/root/.vscode/cli
      - ./vscode-server:/root/.vscode-server
      - .:/app
    
    # 5. 작업 디렉토리 및 터미널 설정
    working_dir: /app
    stdin_open: true  # -i 옵션 (표준 입력 유지)
    tty: true        # -t 옵션 (가상 터미널 할당)
    
    # 6. 실행 명령어 (sh로 진입하거나 bun dev 등 개발 서버 실행용)
    command: /bin/sh

vscode.dev

docker compose down && \
docker compose up -d && \
docker compose exec bun_dev /bin/sh

code tunnel

# 인증 및 연결 후
# Ctrl + Z (프로세스 일시 정지)

bg 
# (백그라운드로 깨우기)


# Ctrl + D (컨테이너 나가기)
sudo chown -R sixtick:sixtick ~/source/sixticklog
docker compose logs -f bun_dev

백그라운드 상태에서 재접속을 하면 포그라운드로 올라오는 현상이 있네 . 이때 터미널을 빠져나간 상태이면 그냥 프로세스가 죽는구만 나중에 필요할때 쓰자.