#0. 도커 사용하기_2

toto9602·2021년 11월 21일
0

RN + DRF 프로젝트

목록 보기
2/5

backend/Dockerfile

FROM python:3.9.8-buster 
#https://jonnung.dev/docker/2020/04/08/optimizing-docker-images/
MAINTAINER Collector

ENV PYTHONUNBUFFERED 1

RUN mkdir /backend
WORKDIR /backend
COPY ./requirements.txt /backend/
# RUN apt add --update --no-cache postgresql-client
# RUN apt add --update --no-cache --virtual .tmp-build-deps \
#         gcc libc-dev linux-headers postgresql-dev
RUN pip install -r requirements.txt
#pip으로 requirements.txt 설치함
# RUN apt del .tmp-build-deps

#/app을 기본 디렉토리로 설정함
COPY . /backend/
#프로젝트에서 만든 코드를 docker image에 복사해 준다. cf) ADD
EXPOSE 8000

이어서 적는 backend Dockerfile!

전 포스팅에서 잠시 언급했지만, alpine 이미지가 가볍고 용량이 작음에도.. buster가 더 적합하다고 이야기를 들어 해당 이미지를 사용했다.

ENV PYTHONUNBUFFERED 1

이 코드는 Udemy 인강에서 배운? 것인데,
기본으로 출력되는 파이썬 버퍼링을 없애주는 것이라고 함!

이 설명은 이 글에서 참조하였다.

RUN mkdir /backend
WORKDIR /backend
COPY ./requirements.txt /backend/

frontend와 유사하게, backend 디렉토리 생성하고, 해당 디렉토리를 기본 작업 디렉토리로 지정!

그리고 requirements.txt 파일을 작업 디렉토리에 복사해 주었다.

requirements.txt

Django>=3.2.9,<3.3.0
#최신 버전?
djangorestframework>=3.12.4,<3.13.0
psycopg2>=2.9.2,<3.0.0
djangorestframework-simplejwt==5.0.0

DRF를 사용할 거라 Django와 djangorestframework를 설치하고,
Django는 PostgreSQL과 잘 맞는다고 하여,
Python에서 PostgreSQL을 다루는 것을 도와주는 모듈인 psycopg2까지 설치!

+)며칠 전에 jwt(Json Web Token)이라는 것을 처음 들었는데,
이번에 사용해 보고 싶어서 requirements.txt에 추가하여 설치했다!

RUN pip install -r requirements.txt
COPY . /backend/
EXPOSE 8000

pip install -r 옵션으로 requirements.txt 설치하고,
backend 디렉토리에 모든 파일들을 도커 이미지에 복사하고!

8000 포트를 열어주면서 Dockerfile 마무리.

profile
주니어 백엔드 개발자입니다! 조용한 시간에 읽고 쓰는 것을 좋아합니다 :)

0개의 댓글