해결된 질문
작성
·
111
1
장고 컨테이너를 만든 후에 ip:8000으로 접속해서
project를 만들었는데 아래와 같은 에러가 뜹니다.
그리고 나서 projects/list/로 접속하면 프로젝트가 생성되어있습니다.
vultr 서버로 들어가지 않고 장고 서버(0.0.0.0:8000)를 실행해서 들어가서 해보니까
거기서는 에러가 발생하지 않더군요.
원인을 알수 있을까요..
snippets/list_fragment.html
Request Method: | GET |
---|---|
Request URL: | http://202.182.108.250:8000/projects/detail/1 |
Django Version: | 3.1.6 |
Exception Type: | TemplateDoesNotExist |
Exception Value: |
snippets/list_fragment.html |
Exception Location: | /usr/local/lib/python3.9/site-packages/django/template/backends/django.py, line 84, in reraise |
Python Executable: | /usr/local/bin/python |
Python Version: | 3.9.1 |
Python Path: |
['/home/blogger', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages'] |
Server time: | Sat, 13 Feb 2021 08:08:25 +0000 |
답변 1
0
안녕하세요 HJ S 님!
그러니까 질문의 내용은 vultr 배포서버에서는 해당 에러가 나는데,
로컬, 그러니까 개발 컴퓨터로 접속할때는 에러가 안뜬다는 말씀이신것 같습니다.
일단 정상적으로 진행이 되야 하는데
말그대로 snippets 안에 있는 해당 HTML 파일을 찾지 못하는듯 합니다.
이후 강좌에서 개발환경과 배포환경을 분리하는 작업을 하지만,
52강에서는 개발환경에서 돌리던 서버를 그대로 vultr에 올리기만 하는 과정인데.. 안되는게 이상하네요.
개발서버는 되는데, 배포서버에서는 안되는 것은 소스코드가 다를 가능성이 높다고 보는게 맞는듯합니다.
github 에 변경한 소스코드가 도커 이미지에 제대로 반영되지 않은 가능성이 있을듯 합니다.
Dockerfile의 내용에서
git clone ******
이 들어가는 명령 앞에
RUN echo "test"
와 같이 의미없는 명령을 덧붙인 후
새로운 이미지를 생성하고 해당 이미지로 서버를 돌려보시길 바래요.
도커는 RUN, WORKDIR, EXPOSE 등 명령어 하나하나마다 모두 캐쉬(임시) 이미지를 만들고,
같은 파일을 사용해서 이미지를 다시 만들때, 명령어의 내용이 변경되지 않았다면,
이전에 만들었던 캐쉬 이미지를 다시 사용하여 이미지를 만들게 됩니다.
그렇기 때문에 소스코드가 바뀐상태로
git clone 명령어가 포함되어있는 구문이 제대로 반영되기 위해서는
앞서 말씀드린것처럼 RUN echo "***" 와 같은 의미없는 명령어를 변경시켜주어야 합니다.
Portiainer의 한계로, 아직 --no-cache 기능을 지원하지 않아 생기는 문제입니다.
52강 강의 시점에서 저런 에러가 뜨는건 예상치 못한터라..
추후에 개발환경과 배포환경을 분리하는 강좌 내용이 있습니다.
일단 해결하지 못하신다면 조금은 더 진행을 해보시고,
계속 진행할때마다 에러가 뜨고 진행이 불가능하시다 하면 다시 질문 남겨주세요!