해결된 질문
작성
·
982
0
# 베이스 이미지 가져오기 -> Python 공식 이미지 ( dockerhub에 존재 )
FROM python:3.9.0
WORKDIR /home/
RUN git clone https://github.com/isdiscodead/likelion_django_study.git
WORKDIR /home/likelion_django_study/
# requirements에 있는 라이브러리들 모두 설치
RUN pip install -r requirements.txt
# 환경 변수 가져오기
RUN echo "SECRET_KEY=django-insecure-me&5g=_kl*c1okm22^&(=j02)i6&2tuhpu!au8%oi3b3+fwoxz" > .env
# db 연동
RUN python manage.py migrate
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
이후 오류 메시지
어째서일까요??... ㅠㅠ
답변 2
0
0
안녕하세요.
질문 확인했습니다.
저도 질문자님이 남겨주신 주소 들어가서 확인해보았는데,
git 저장소 자체는 문제가 없어보입니다.
혹시 이전에 git 에 requirements를 올리지 않은 상태에서 이미지를 만들었다가,
git을 다시 push 하신 적이 있나요?
저도 확실히 알 수는 없지만,
git 저장소에 별 문제가 없다는 것을 확인했으니,
Docker 쪽에 문제가 있다는 의심이 갑니다.
일단,
FROM python:3.9.0
WORKDIR /home/
RUN echo "testing1234"
RUN git clone https://github.com/isdiscodead/likelion_django_study.git
...
Dockerfile 의 내용을 위와 같이 의미없는 명령어 하나를 추가해보시길 바랍니다.
기본적으로 별도의 옵션을 넣어주지 않는다면,
docker 는 이전에 빌드했었던 캐쉬 이미지를 기반으로 이미지를 다시 빌드하게 됩니다.
아무래도 requirements 파일이 없던 예전 캐쉬이미지를 기반으로 계속 빌드를 시도하고 있는 것으로 보이니,
앞에 무의미한 명령어를 넣어 캐쉬이미지 없이 빌드를 시도하도록 강제해 보시길 바랍니다.
Portainer 에서 빌드를 할때는 이렇게 조금 번거롭지만,
CLI 환경에서는 -no-cache 옵션을 넣어서 완전히 새로운 이미지를 만들도록 설정할 수 있으니 참고해주시길 바랍니다.
혹여 그럼에도 정상적으로 빌드가 되지 않는다면,
계속 질문 남겨주시길 바랍니다.
좋은하루 보내시구요!
감사합니다-
안녕하세요.
질문 확인했습니다.
질문자님 의 경우에는
중간 WORKDIR 명령어를 통해 작업공간 변경시,
/home/jucheolwoo/
라는 경로를 사용하셨습니다.
하지만 git clone 을 통해 소스코드를 가져오면서 생기는 폴더의 이름은
해당 깃 repository 의 이름입니다.
그렇기에, 질문자님의 코드가 만약
WORKDIR /home/jucheolwoo/
와 같이 되어있다면, 해당 내용을
WORKDIR /home/pragmatic/
으로 변경하고 진행해보시길 바랍니다.
그럼에도 되지 않는다면,
계속 질문 남겨주세요!
감사합니다-