컨테이너 이미지와 재현 가능한 실행
앞 모듈의 서비스를 고정된 이미지로 실행하고 설정과 데이터를 분리합니다.
진도 0%
레슨
- 이미지와 컨테이너의 수명
빌드 산출물과 실행 상태를 구분합니다.
- 서비스 이미지 빌드
빌드 문맥과 실행 사용자를 설정합니다.
- 환경 변수·볼륨·포트
환경별 설정과 지속 데이터의 역할을 분리합니다.
- 버전 고정과 재실행
태그와 digest 및 설정 변경을 기록합니다.
컨테이너 이미지와 재현 가능한 실행 미션
앞 모듈의 산출물을 이어받습니다. 앞 모듈의 서비스를 고정된 이미지로 실행하고 설정과 데이터를 분리합니다.
요구사항
- m02 서비스를 컨테이너화하고 릴리스 명세에 실제 이미지 digest를 기록합니다.
- 테스트·시연 환경의 포트와 환경 변수를 분리하고 안내판 데이터는 볼륨에 둡니다.
- m02 solution의 소스·요청 로그·workspace·진단 검사를 보존하고 /identity와 파일 기반 /notices를 확장합니다.
- 레지스트리 없는 실습에서는 실제 로컬 image ID를 imageDigest로 기록하고 digestKind=local-image-id, registryDigest=null로 구분합니다.
- 검사한 이미지는 artifacts/notice-image.tar로 보관하고 명세에 archiveSha256을 기록하여 다음 모듈에 전달합니다.
완료 기준
- 두 환경이 같은 이미지 digest를 사용하며 각 /health가 성공합니다.
- 실행 사용자 UID가 0이 아니고 이미지 파일에 비밀 fixture가 없습니다.
- 컨테이너 재생성 후 데이터가 유지되고 환경별 표시 이름이 다릅니다.
- bash check.sh가 빌드·비루트 UID·비밀 레이어 제외·두 환경 HTTP·볼륨 격리·재생성 보존·실제 image ID 명세를 검사합니다. Docker 실행 검증은 external 대기입니다.
- release.json은 일시적 검사 증거입니다. imageDigest는 동일 daemon의 config digest이며 registry manifest digest로 표시하지 않습니다.
bash check.sh미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 명령 기록과 관측 증거로 변경 이유를 설명합니다.
- 다른 학습자가 README로 실행·실패 재현·검증을 따라갈 수 있습니다.