작성
·
401
0
안녕하세요. 배포후 화면에서 일부 파일들 (js, font관련, jpg, svg)이 생략되어 확인해보니 collectstatic 이후 만들어진 staticfiles에 해당파일들이 누락된것을 확인하였습니다.
로컬에서는 괜찮은지 확인을해보았고 로컬에서는 정상적으로 staticfiles가 만들어졌습니다.
누락된 파일은 fonts 폴더, temp폴더, magicgid.js 등 입니다.
모두 runserver로 배포한 이후에 추가했던 것들이고 새로 이미지와 컨테이너를 만들어 배포한 이후부터 문제가 발생했습니다. 캐시문제인가도 싶어 도커파일도 여러번 확인해보고 CLI로 static 내부도 확인해보았으나 static에는 파일이 잘 들어간것을 보아 collectstatic이 실행되는 과정에서 문제가 생긴것 같습니다. 5,6번정도 더 시도해보다가 이렇게 질문을 드립니다.
아래는 도커파일 이미지와 깃허브 주소입니다.
https://github.com/Aiden-Kwak/oconnect_vultr
감사합니다
답변 1
1
안녕하세요!
질문 확인했습니다.
일단 도커 캐쉬문제인지 확인해보셨다고 했는데,
저도 보내주신 코드를 훑어보았습니다.
제가 보기에도 도커 캐쉬문제 제외하고는 저렇게 될 이유가 없어보입니다.
일단 git clone 명령어 앞에 있는
echo 명령어의 내용을 살짝 바꾸신 다음에 시도해보셨나요?
https://www.inflearn.com/questions/217643
도커의 캐쉬기반 이미지 빌드 방법은 위의 질문글에 답변을 해놓았습니다
도커 이미지 빌드 명령어는 명령어가 바뀌지 않았다면 자동으로 캐쉬 이미지를 사용하기 때문에,
git clone 과 같은 소스 변경이 적용되는 작업에는 꼭 캐쉬이미지를 사용하지 않도록 해야 합니다.
만약 그렇게 했음에도 문제가 계속 발생한다면,
다시 질문 남겨주세요.
조금 더 확인을 해봐야 할 것 같습니다.
좋은하루 보내시구요!
감사합니다!
아아아 무슨 문제인지 알것 같습니다.
당연히 잘 작성하셨을줄 알고 캐쉬 이미지 문제인줄 알았는데,
보내주신 Dockerfile을 보고 문제가 있는걸 확인했습니다.
아마 문제는 collectstatic 을 실행시켜주는 부분에서 일어난 것 같습니다.
작성해주신 Dockerfile 내부에는
RUN 커맨드를 이용해서 명령을 실행시켜주시는데,
제 강좌에서 진행한 내용을 적어드리면,
해당 명령을 CMD 명령 안에 함께 넣었습니다.
그리고 넣을때, 옵션을 두가지 넣어줍니다.
python manage.py collectstatic --noinput --settings=pragmatic.settings.deploy
input을 따로 넣지 않고도 바로 실행하도록 하는 옵션과
deploy 설정을 기반으로 collect static 을 실행시켜주는 옵션입니다.
아마도 따로 설정을 명시하지 않으셨다면,
deploy 세팅이 아니라 local 세팅을 기반으로 static 이 수집되었을 것으로 보입니다.
한번 해당 부분을 수정하시고 시도해보시고,
그럼에도 해결되지 않는다면 질문 계속 남겨주시길 바랍니다.
좋은 하루 보내세요!
감사합니다-
답변 감사드립니다! 하지만 해당문제를 인지하고 말씀해주신 RUN echo "~~" 내용을 바꿔보기도 했고,
collectstatic 전에 해당 내용을 한번더 넣어보는 방법도 시도해보았고, 깃허브 레포를 새로파서 다시 배포해보기도 했는데 같은 문제가 발생하고 있습니다 ㅠ
강사님도 좋은하루 보내세요! 감사합니다