backend:
container_name: backend
build: ./backend/
entrypoint: sh -c "python manage.py collectstatic --no-input && python manage.py makemigrations && python manage.py migrate && gunicorn config.wsgi --workers=5 -b 0.0.0.0:8000"
volumes:
- ./backend/django/:/app/
- /etc/localtime:/etc/localtime:ro
- django_media:/app/media/
- django_static:/app/static/
environment: #
- DEBUG
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_HOST
- POSTGRES_PORT
- SECRET_KEY
- NAVER_ACCESS_KEY
- NAVER_SECRET_KEY
- SERVICE_ID
- PHONE_NUMBER
depends_on:
- postgres
- redis
restart: always
docker-compose.yml 파일에서 entrypoint에 다음과 같이 작성해주었다. 하지만 docker 로그를 확인해 본 결과 user_user 테이블을 못찾는 다는 에러가 나왔다.
이러한 에러가 나오는 이유는 makemigrations가 잘 작동하지 않았기 때문이다.
문제를 해결하기 위해 명령어를 통해 컨테이너에 접속하려고 했으나 restarting 중인 컨테이너라서 접속이 불가하다는 문구만 계속 뜬다.
위의 문제를 해결하기 위해서 도커 볼륨을 초기화 시켜 주면 된다.
docker volume prune
위의 명령어를 실행하고 다시 컨테이너들을 동작시켜 주면 접속이 가능해진다. 그 후 직접 migration 명령어를 실행한다.
명령어
- 로그 확인
docker compose logs- 컨테이너 접속
docker exec -it 컨테이너 이름 /bin/bash- 초기화
docker volume prune
docker container prune- 컨테이터 실행
docker compose up -d --build