이번 시간에는 장고에서 기본적으로 제공하는 sqlite
DB설정을 postgresql
로 바꿔버릴게요.
우선 docker-compose
파일을 수정해야해요. 새로운 데이터베이스 서비스를 생성하기 위해서조 물론. 그 진행중 db 설정에 대한 부분도 물론 작성되어야하고요.
기존 작성 했던 docker-compose 파일이에요.
변경 전
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
command:
sh -c python manage.py runserver 0.0.0.0:8000"
이제 슬슬 바꿔보조.
우선 services
아래에 app을 정의했는데 그와 동일한 라벨에 db라는 이름을 만들어 줄게요. 이미지 이름도 만들고 그리고 중요한 environment
를 정의하는데요. 환경설정부분이에요.
depends_on
부분은 서비스간의 종속성을 순서대로 시작할 수 있게 만들어요.
즉 db컨테이너를 완전히 구동된 다음에 이후 app컨테이너가 돌아가게되어야하는데요.
일반적으로는 이런 순차적 실행이 되지 않아 별도의 코딩을 추가적으로 해줘야해요. 이 부분은 곧 다루도록 할게요.
변경 후
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
command:
sh -c "python manage.py wait_for_db &&
python manage.py migrate &&
python manage.py runserver 0.0.0.0:8000"
environment:
- DB_HOST=db
- DB_NAME=app
- DB_USER=postgres
- DB_PASS=supersecretpassword
depends_on:
- db
db:
image: postgres:10-alpine
environment:
- POSTGRES_DB=app
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=supersecretpassword