멀티 컨테이너 모드로 전환했을 때, DB를 복원하는 과정에서 예상치 못한 사이트 다운타임이 발생한다는 점을 발견했습니다(백업이 DB에 로드되는 동안):
그래서 postgres.template.yml 파일을 자세히 살펴보니, app.yml과 스탠드얼론 컨테이너 standalone의 공유 공간 경로가 이 템플릿에 하드코딩되어 있는 것을 확인했습니다.
저는 이 파일들에 대해 전문가라고 할 수는 없지만 (아직은), 코드가 대부분 정보 제공용 “echo” 문구로 구성되어 있어, 내용 자체가 “사용자에게 정보를 제공하는” 성격이 강하고 시스템에 장애를 일으키는 것은 아닌 것으로 보입니다:
템플릿 예시
echo Run: "./launcher stop app"
echo Run: "sudo mv /var/discourse/shared/standalone/postgres_data /var/discourse/shared/standalone/postgres_data_old"
echo Run: "./launcher rebuild app"
echo
echo Run: "./launcher enter app"
echo Run: "cd /shared/postgres_backup"
echo Run: "sv stop unicorn"
echo Run: "sudo -iu postgres dropdb discourse"
echo Run: "sudo -iu postgres createdb discourse"
echo Run: "sudo -iu postgres psql discourse < backup.db"
echo Run: "exit"
echo Run: "./launcher rebuild app"
exit 1
if [ "$PG_MAJOR_OLD" = "9.5" ]; then
echo 'In containers/app.yml: Change "templates/postgres.template.yml" TO "templates/postgres.9.5.template.yml"'
echo
fi
등등.
대부분 “정보 제공용이며 장애를 일으키지 않는다고” 가정하고 있습니다.
사실 중요하지 않을 수도 있지만, 사이트 내 다양한 튜토리얼에서 이 템플릿과 데이터 컨테이너를 "data"로, 웹 컨테이너를 "web-only"로 이름 변경하는 내용을 언급하고 있어 언급할 가치가 있다고 생각했습니다.
참고용으로만 남기며, 먼 미래에 다시 살펴볼 수 있도록 올립니다 …