services: # docker compose 서비스 정의 루트 builder-dind: # Docker-in-Docker 데몬과 빌더가 결합된 컨테이너 image: docker:24-dind # 도커 데몬이 포함된 공식 dind 이미지(v24) privileged: true # 컨테이너 안에서 도커 데몬을 구동하려면 privileged 권한 필요 environment: - DOCKER_TLS_CERTDIR=${DOCKER_TLS_CERTDIR:-} # dind의 TLS 인증서 디렉터리 활성화(평문 2375 사용)비활성화(평문 2375 사용) - DOCKER_HOST=${DOCKER_HOST:-tcp://127.0.0.1:2375} # 로컬 도커 데몬에 접속 volumes: - dind-cache:/var/lib/docker # 도커 레이어/이미지 캐시를 볼륨에 보존해 재빌드 가속 - ./docker-daemon.json:/etc/docker/daemon.json:ro # 도커 데몬 설정(동시 업로드 제한 등) 주입 - .:/workspace # 현재 리포지토리를 컨테이너에 바인드 마운트 working_dir: /workspace # 작업 디렉터리(호스트의 리포지토리를 마운트) env_file: - ./.env.dockerize # USER/TOKEN, TAG 등 환경변수 로드 command: ['sh', './bin/dockerize.sh'] volumes: dind-cache: # dind의 /var/lib/docker를 저장하는 네임드 볼륨