[Docker]Django App 도커 이미지 빌드 및 실행

Jay·2023년 2월 1일
0
post-custom-banner

Django project 생성

생성된 프로젝트의 디렉토리 구조는 아래와 같다.

dockerize_django_app
└─ backend
├─ config
│ ├─ settings.py
...
├─ Dockerfile
├─ manage.py
├─ Pipfile
├─ Pipfile.lock
└─ posts

우선 dockerize_django_app 디렉토리에서 backend 디렉토리를 생성하고 이동한 후, git bash를 사용하여 아래의 동작들을 수행하였다.

~/Desktop/dockerize_django_app/backend
pip install pipenv
pipenv shell
pipenv install django
pipenv install djangorestframework

django-admin startproject config .
django-admin startapp posts

다음으로는 기본적인 api 기능을 구현하고 환경을 설정하기 위해 아래와 같이 프로젝트를 수정하였다.

# settings.py
import os
...

DJANGO_APPS = [
    'posts',
]

DEPENDENCIES = [
    'rest_framework',
]

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
] + DEPENDENCIES + DJANGO_APPS

...

LANGUAGE_CODE = "ko-kr"

TIME_ZONE = "Asia/Seoul"

USE_I18N = True

USE_TZ = False

STATIC_URL = "static/"

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

Dockerfile 작성

도커화시키기 위한 Dockerfile을 작성하였다. 작성한 Dockerfile은 아래와 같다.

FROM python:3.9
ENV PYTHONUNBUFFERED=1
WORKDIR /backend

RUN pip install pipenv
COPY Pipfile* /backend/
RUN pipenv requirements > requirements.txt
RUN pip install -r requirements.txt

COPY . /backend/

CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]

EXPOSE 8000

도커 이미지 빌드 및 실행

작성한 Dockerfile을 바탕으로 이미지를 빌드한 후, 컨테이너로 해당 이미지를 백그라운드에서 실행시켜 보았다.

# 도커 이미지 빌드
$ docker build -t django_docker:1.0.0 .

# 생성된 이미지
$ docker images
REPOSITORY                       TAG       IMAGE ID       CREATED          SIZE
django_docker                    1.0.0     816041c3b60f   18 minutes ago   1.01GB

# 이미지 실행
$ docker run -d -p 8000:8000 django_docker
c25e5a50395362804732ff1a70fb89ce7decd3257017896ca16f42bef5064322 # 컨테이너 id
post-custom-banner

0개의 댓글