[docker | postgres] Build a Backend REST API - 15

Hyeseong·2021년 2월 28일
0

Add postgres to docker compose🐳

이번 시간에는 장고에서 기본적으로 제공하는 sqlite DB설정을 postgresql로 바꿔버릴게요.

우선 docker-compose 파일을 수정해야해요. 새로운 데이터베이스 서비스를 생성하기 위해서조 물론. 그 진행중 db 설정에 대한 부분도 물론 작성되어야하고요.

docker-compose.yml🏄‍♀

기존 작성 했던 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

도커 컴포즈 파일 작성법

profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글