app.yml 파일이나 launcher 파일에서 앱을 재빌드하는 동안 docker 컨테이너 삭제 명령을 사용할 수 있을까요?
docker image prune -a --force
또는
./launcher cleanup
이와 관련하여 아이디어가 있으시면 이 질문에 답변해 주세요.
미리 감사합니다 ![]()
app.yml 파일이나 launcher 파일에서 앱을 재빌드하는 동안 docker 컨테이너 삭제 명령을 사용할 수 있을까요?
docker image prune -a --force
또는
./launcher cleanup
이와 관련하여 아이디어가 있으시면 이 질문에 답변해 주세요.
미리 감사합니다 ![]()
일단 ./launcher cleanup app를 실행하여 모든 중지된 컨테이너를 제거할 수 있습니다.
보통 최신 컨테이너가 실행 중인 상태에서 재빌드하기 전에 이 명령을 실행합니다.
@merefield 님, 안녕하세요.
./launcher cleanup app 명령어는 제 환경에서는 정상 작동합니다. 하지만 실제로 이 명령어를 app.yml 파일이나 launcher 파일에 추가해야 하는지 궁금합니다.
저는 ./launcher rebuild app 명령어 하나만 사용하고 있습니다. 이전에 언급한 파일들에 이 명령어들을 추가해도 될까요?
그것이 절대 권장되지 않는다는 사실은, 재빌드 중에 해당 명령을 실행하면 작동하지 않거나 안전하지 않을 수 있다고 생각하게 만듭니다.
bash 스크립트에서 순서대로 실행해 보시는 건 어떨까요?
bash 스크립트에서 순차적으로 실행해 보는 건 어떨까요?
앱 재구축을 위한 커스텀 bash 스크립트를 이미 작성했으며, 재구축이 완료된 후 discourse docker 컨테이너에서 사용하지 않는 docker 이미지들을 삭제했습니다.
다만, 이러한 명령어를 app.yml 파일이나 launcher 파일에 추가할 수 있는지에 대해 궁금합니다.
스테이징 사이트에서 한 번 실험해 보았지만 launcher 파일에서 문제가 발생했습니다. 명령어는 제 환경에서는 정상적으로 작동하지만, 사용 시 모든 이미지가 삭제되는 문제가 있었습니다.
docker image prune -a --force
이를 해결하기 위해 명령어에 최근 24시간을 필터링하는 조건을 추가했습니다:
docker image prune -a --force --filter "until=240h" 이 솔루션은 저에게는 효과적입니다.
어떤 문제를 해결하려 하시는 건가요? 기존 컨테이너를 삭제하지 않고 새 컨테이너를 빌드할 디스크 공간이 부족하나요? 문제가 발생하면 상황이 걷잡을 수 없이 악화되므로 위험합니다.
이 작업은 런처에서는 수행할 수 없으며, 해당 명령어들은 컨테이너 내부에서 실행되기 때문입니다. 대신, 이 작업을 수행하고 런처를 실행하는 셸 스크립트를 작성하여 처리할 수 있습니다.