Kamal의 유지보수 모드는 kamal-proxy를 통해 구현되며, kamal app maintenance 명령으로 활성화됩니다. 이 명령은 kamal-proxy에게 애플리케이션으로의 트래픽 전송을 중단하도록 지시하여 기본 503 페이지를 반환하게 합니다.
유지보수 모드 활성화 및 설정
-
명령:
kamal app maintenance를 실행하면docker exec kamal-proxy kamal-proxy stop [앱 이름]이 호출됩니다. -
드레인 타임아웃 (
drain_timeout):config/deploy.yml에서 설정하여 진행 중인 요청 완료 시간을 지정합니다. -
사용자 정의 메시지:
kamal app maintenance --message "메시지"로 503 페이지에 표시될 텍스트를 직접 지정할 수 있습니다.
사용자 정의 503 에러 페이지
Kamal은 사용자 정의 503 페이지 제공을 지원합니다.
-
경로 지정:
config/deploy.yml에error_pages_path: public과 같이 503.html 파일 경로를 지정합니다. -
페이지 배포:
error_pages_path설정 후 배포 시 Kamal은 해당 경로 내의4xx.html,5xx.html파일을 서버에 업로드합니다. -
동적 메시지: 사용자 정의 503.html 파일 내에
{{ if .Message }}{{ .Message }}{{ else }}기본 메시지{{ end }}템플릿 태그를 사용하여 동적인 메시지를 표시할 수 있습니다.
유지보수 모드 해제
- 작업 완료 후
kamal app live명령으로 애플리케이션을 다시 온라인 상태로 전환할 수 있습니다. 이 명령은kamal-proxy에게 트래픽 전송을 재개하도록 지시합니다.