Old Branch
Django Debug 서버 with docker-compose
woolbro
2020. 7. 21. 11:30
반응형
Dockerfile과 docker-compose 파일로 DEBUG 모드가 적용된 서버를 세팅하자!
docker-compose를 사용해 Debug를 적용하는 방법을 작성하려고 한다.
비슷한 예제로는 flask에 적용 된
[Master_branch/study_branch] - Docker로 작성한 서버, Debug모드 적용하기
페이지를 볼 수 있다.
docker-compose Django DEBUG Server
Setup Django
start virtualenv
$ virtualenv venv
$ source venv/bin/activate
#mysqlclient는 오류가 날 수 있다.
# linux - sudo apt-get install python-dev python3-dev pymysql libmysqlclient-dev
(venv) $ pip install django pymysql mysqlclient
(venv) $ pip freeze > requirements.txt
make Django Project
(venv) $ django-admin startproject config .
(venv) $ python manage.py startapp test_django
Django settings.py 수정
# config/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'test_django', # Add New Line
]
...
Django 실행해보기
(venv) $ python manage.py runserver
Dockerfile 만들기
위의 Django가 실행이 완료되었다면 Dockerfile을 작성하자
django.Dockerfile
FROM python:3
ENV TZ Asia/Seoul
COPY requirements.txt /tmp/
RUN python3 -m pip install --upgrade pip
RUN pip3 install -r /tmp/requirements.txt
ADD . /app
WORKDIR /app
CMD ["python3","manage.py","runserver","0.0.0.0:8000"]
이 Dockerfile을 가지고 db와 연결해주는 compose 파일을 작성 해 주자
docker-compose.yml
version: '3'
services:
docker-mysql:
image: mysql
volumes:
- /home/me/DwitterDB:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=qwerqwer123
docker-django:
build:
context: .
dockerfile: django.Dockerfile
environment:
- DJANGO_DEBUG=True
- DJANGO_DB_HOST=docker-mysql
- DJANGO_DB_PORT=3306
- DJANGO_DB_NAME=django_test
- DJANGO_DB_USERNAME=woo
- DJANGO_DB_PASSWORD=qwerqwer123
ports:
- "8000:8000"
command: python3 manage.py runserver 0:8000
volumes:
- .:/app
docker-compose up
다 완성했다면, 테스트해보자
$ docker-compose -f docker-compose.yml up -d