docker-compose django migrate 에러

Victory·2022년 4월 28일
1

문제

docker-compose.yml에서 depends_on 옵션을 주어도 migrate 에러가 발생하는 문제

거두절미하고 해결법 -> 깃헙
문제는 일단 depends_on옵션을 주었을 때 순서적으론 DB가 먼저 실행되고, django가 실행되는 건 맞다. 근데 DB가 완전히 실행되기까 django가 기다려주지 않고 migrate를 하려고 한다. 당연히 에러가 발생.

version: "3"
services:
  backend:
    build:
      context: .
      dockerfile: ./Dockerfile
    container_name: backend
    ports:
      - 8000:8000
    depends_on:
      - db
    environment:
      - DJANGO_DEBUG=TRUE
      - DJANGO_DB_NAME=db_name
    command: 
      - bash
      - -c
      - |
        python manage.py migrate
        python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./:/app/
    restart: always
    entrypoint: ./wait-for-it.sh db_host:3306 --

docker-compose.yml과 같은 위치에 wait-for-it.sh를 만들어주고 entrypoint: ./wait-for-it.sh db_host:3306 -- 옵션을 주면 해당 port가 응답을 할 때까지 기다렸다가 다음 스크립트를 실행한다.


아 . . . 잠 잘 수 있 다 .

profile
Hello Cosmos🚀

0개의 댓글