Compose에서 init 컨테이너 사용하기

Compose에서 init 컨테이너 사용하기 (Use init containers in Compose)

init 컨테이너는 서비스의 메인 컨테이너가 시작되기 전에 실행되는 수명이 짧은 컨테이너예요. 순차적으로 실행되며, 각각은 다음이 시작되기 전에 완료될 때까지 실행돼요. 어떤 단계가 0이 아닌 코드로 종료되면 서비스는 시작되지 않아요.

애플리케이션이 부팅되기 전에 완료되어야 하는 설정 작업 — 데이터베이스 마이그레이션 실행, 볼륨 권한 수정, 동적 구성 생성, 정렬된 사전 요구사항 시퀀스 실행 — 에 사용해요.

출처: 문서

본문

각 init 단계는 서비스 컨테이너가 생성된 후, 시작되기 전에 만들어진 자체 임시 컨테이너에서 실행돼요.

init 컨테이너를 쓰지 말아야 할 때 (When not to use init containers)

  • (설정 파일·시크릿은) top-level 요소를 대신 사용해요. Compose는 그것들을 구성 가능한 target 경로, 모드, UID, GID로 컨테이너에 직접 마운트해요. init 컨테이너가 필요 없어요.
  • 예약된 백업, 종료 후 정리, 주기적 유지보수 같은 자체 수명주기를 가진 백그라운드 작업에는 init 컨테이너가 맞지 않아요. 그런 작업은 서비스 시작 이전이 아니라 서비스 시작과 독립적으로 실행되기 때문이에요.

init 컨테이너는 설정사항이 완료되어야만 서비스가 부팅되는 "사전 조건" 특성의 작업에 쓰는 것이 올바른 용도예요.

더 알아보기 (Learn more)