1. docker compose 설치
~$ curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
~$ chmod +x /usr/local/bin/docker-compose
~$ docker-compose --version
chmod로 docker-compose의 실행권을 주어야 version 확인 가능
현재 사용 버전 : 1.25.0
2. django sample 가져오기
~$ git clone https://github.com/raccoonyy/django-sample-for-docker-compose.git
~$ mv django-sample-for-docker-compose {project name}
~$ cd {project name}
샘플을 다운 받아 이름을 원하는 프로젝트 이름으로 바꾼다.
3. docker-compose 파일 수정
~$ vim docker-compose.yml
- vim이 없다면
~$ sudo apt-get vim
아래와 같이 수정한다.
version: '3'
services:
db:
image: postgres
volumes:
- ./docker/data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=sampledb
- POSTGRES_USER=sampleuser
- POSTGRES_PASSWORD=samplesecret
- POSTGRES_INITDB_ARGS=--encoding=UTF-8
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile-dev
environment:
- DJANGO_DEBUG=True
- DJANGO_DB_HOST=db
- DJANGO_DB_PORT=5432
- DJANGO_DB_NAME=sampledb
- DJANGO_DB_USERNAME=sampleuser
- DJANGO_DB_PASSWORD=samplesecret
- DJANGO_SECRET_KEY=dev_secret_key
ports:
- "8000:8000"
command:
- python manage.py runserver 0:8000
volumes:
- ./:/app/
Django에 database가 연결되어 있음을 알 수 있다. django아래에 environment를 수정해 다양한 설정 할 수 있다.
4. Docker 파일 수정
~$ vim compose/django/Dockerfile-dev
FROM python:3
ENV PYTHONUNBUFFERED 0
RUN apt-get update && apt-get -y install \
libpq-dev
WORKDIR /app
ADD requirements.txt /app/
RUN pip install -r requirements.txt
ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /
# ADD ./djangosample /app/djangosample/
# ADD ./manage.py /app/
CMD ["python", "manage.py", "runserver", "0:8000"]
CMD의 주석을 제거하여 컨테이너 실행 시 서버가 실행되도록 한다. (이유는 모르겠지만 재부팅 후 docker-compose up 으로 실행 안되는데 이렇게 하니까 됐다.)
5. 실행하기
~$ docker-compose up -d --build
http://127.0.0.1:8000에 들어가 확인해본다.
- 현재실행중인 docker-compose 확인하기
~$ docker-compose ps