./launcher rebuild app. 실행 후 Your Docker installation is not working correctly 문제가 발생하고 있습니다.
에러 메시지는 docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.입니다.
…이 문제를 해결하는 일반적인 팁 중 하나로 ./launcher cleanup을 사용하는 것을 보았습니다. 다만, 사용 전에 안전성이 있는지 확인하고 싶습니다. 실행 시 다음과 같은 경고가 나오기 때문입니다:
WARNING! This will remove all stopped containers.
WARNING! This will remove all images without at least one container associated to them.
docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
See 'docker run --help'.
Your Docker installation is not working correctly
…그래서 여전히 궁금한 질문에 대한 답을 알지 못합니다: 사이트가 실행 중이지 않을 때 ./launcher cleanup를 사용하는 것이 안전한가?
첫 번째 게시물의 ‘docker images’ 아래 스크린샷을 보면 오래된 이미지가 많이 있는 것 같지만, 이를 특정하여 삭제하는 방법과 이것이 문제를 일으키는지 여부는 알지 못합니다.
감사합니다. 하지만 여전히 제게는 좀 더 명확하지 않네요. Docker는 제 강점이 아니라서 컨테이너를 삭제하고 다시 빌드하면 제 사이트에 문제가 생기는지 모르겠거든요… 앱이 실행되지 않는 상태에서 먼저 선택적으로 공간을 정리해서 앱을 실행하는 것이 더 안전할까요? 예를 들어 이렇게요:
특정 이미지를 삭제 대상으로 지정하여 먼저 공간을 확보합니다.
그런 다음 ./launcher start app을 실행합니다.
앱이 실행된 후: ./launcher cleanup을 실행합니다.
…이런 신중함이 필요한지 모르겠네요. 아마 그냥 ./launcher cleanup을 바로 실행해도 앱이 실행 중이 아니더라도 중요한 것을 삭제하지 않고 잘 작동할 수도 있겠죠.
하지만 위 접근 방식이 옵션이 될 수 있다고 생각하신다면: 특정 이미지를 삭제 대상으로 지정하는 명령어(위의 1단계)를 아시나요? 아래에 삭제할 수 있는 이미지 옵션들을 첨부했습니다.
재빌드 시 메모리 오류가 발생했다면, 스왑을 1GB 더 추가하는 것이 좋겠지만, 그렇게 하면 디스크 공간 문제가 더 악화될 수 있습니다(25GB RAM의 작은 드롭릿을 사용 중인 것으로 보이며, 이는 겨우 충분한 수준입니다). 각 재빌드 전에 ./launcher cleanup를 실행하거나, 아니면 백업 파일이 많이 쌓여 있어 이를 S3로 이동하는 것이 좋습니다([업로드용 S3 호환 객체 스토리지 제공자 설정](Configure an S3 compatible object storage provider for uploads – 백업만 수행해도 되며, 해당 문서에 설명된 모든 에셋을 처리할 필요는 없습니다).
두 번째 오류는 메모리 오류가 아니었지만, 새로운 오류가 무엇인지 파악할 수 없었습니다: 그래서 닥터(doctor)를 실행했습니다.
어쨌든, ./discourse-doctor로 해결되었는데, 실제로 무슨 일이 있었는지 알 수 있었으면 좋았을 텐데 아쉬웠습니다.
도움 주셔서 감사합니다!