62/120

김건호·2022년 5월 12일
1
post-custom-banner

Flask 이미지 만들기


FROM python:3.9-slim-buster

COPY . /app . . # 소스는 현재 디렉토리 
WORKDIR /app 
ENV FLASK_APP
RUN python3 -m venv venv && . venv/bin/activate 
RUN pip3 install -r requirements.txtx
EXPOSE 5000
ENTRYPOINT ["python3", "-m", "flask","run" ]
CMD ["--host=0.0.0.0"]

docker build -t myFlask .
docker run -d -p 80:5000 myFlask 

Q. 컨테이너에서도 가상환경을 하는 이유가 있을까요?
선택적인 형태, 중요한건 가상환경 유무가 아니라 패키지 설치할때 파이썬은 글로벌과 가상환경 글로벌에 설치했을 때 원래 특정 패키지가 있었다면 내가 사용하는 패키지와 안맞거나 똑같은 패키지가 버전이 다르면 문제가 생길 수 있음 안전하게 하기 위해 가상환경을 사용

.dockerignore file

vi .dockerignore
venv/
Dockerfile
.dockerignore

copy나 add할 때 제외할 파일을 지정할 수 있음
정규화 표현식 지원
!는 not의 의미

리눅스에서 &&와 ||

  • a && b
    a가 실행되어야 b를 실행
  • a || b
    a가 실행되지 않으면 b를 실행

Django 이미지 만들기

vi Dockerfile
FROM python:3.9-buster

COPY . /app
WORKDIR /app
RUN python3 -m venv venv && . venv/bin/activate
RUN pip3 install -r requirements.txt

WORKDIR /app/mysite
CMD ["python3", "manage.py", "runserver","0.0.0.0:8000"]
EXPOSE 8000

docker build -t mydjango .
docker run -d -p 80:8000 mydjango
profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽
post-custom-banner

0개의 댓글