준호씨의 블로그

python django 애플리케이션 Docker 이미지로 만들기 본문

개발이야기

python django 애플리케이션 Docker 이미지로 만들기

준호씨 2023. 2. 12. 20:04
반응형

Python Django를 이용해서 만드는 웹애플리케이션을 Docker 이미지로 생성하는 방법을 정리해 봅니다.

 

제가 개발 중인 정원사들 시즌8 출석부앱을 기준으로 합니다.

https://github.com/junho85/garden8

 

간단하게 요약하면 Dockerfile을 만들어주면 됩니다.

Dockerfile 만들기

"Dockerfile"이라는 파일을 만들고 다음과 같이 내용을 입력합니다.

# Use an official Python runtime as the base image
FROM python:3.8

# Set the working directory in the container
WORKDIR /app

# Copy the requirements.txt file to the container
COPY requirements.txt ./

# Install the application dependencies
RUN pip install --no-cache-dir -r requirements.txt

# Copy the application code to the container
COPY . .

# Specify the command to run when the container starts
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000" ]

참고: https://github.com/junho85/garden8/commit/3fdf0b10a946aea8efa6a901ff65046c7d98c31a

 

python 3.8 버전을 이용하고 있기 때문에 python 3.8을 기본 이미지로 사용합니다.

컨테이너의 작업경로는 /app으로 설정했습니다.

의존 모듈이 정의되어 있는 requirements.txt 파일을 복사하고 모듈들을 설치해 줍니다.

COPY . . 을 하면 현재 작업 경로의 파일들을 WORK 디렉터리로 복사해 준다고 보면 됩니다.

CMD를 통해 컨테이너가 시작되었을 때 실행할 명령어를 입력합니다.

 

Docker image build

도커 이미지를 빌드하려면 다음과 같이 명령어를 이용할 수 있습니다.

$ docker build . -f Dockerfile --tag garden8:20230212_1

PyCharm에서 Dockerfile을 실행하려면 다음과 같이 하면 되겠습니다.

 

이미지가 잘 생성된 것을 볼 수 있습니다.

 

docker run

생성한 garden8:20230212_1 이미지를 실행시키는 명령어입니다.

$ docker run --rm -it --name garden8 -p 127.0.0.1:8000:8000 garden8:20230212_1

이렇게 하면 서버가 잘 구동됩니다.

 

다만 설정 파일이 없어서 오류가 발생합니다.

이건 이 애플리케이션의 예외적인 상황이라 자세히 다루지는 않겠습니다.

반응형
Comments