250121 TIL Docker & Docker-Compose Troubleshooting

윤수용·2025년 1월 21일
0

TIL

목록 보기
108/113

1. Docker & Docker-Compose Troubleshooting

1. Access denied for user 'root'@'localhost' (using password: NO)

문제:

  • root에 로그인이 되지 않던 문제

해결책:

  • db의 healthcheck에 아래의 문구로 수정
db:
image: mariadb:10.5 # MariaDB 공식 이미지
container_name: mariadb
ports: # 포트 매핑 (호스트:컨테이너)
  - "3307:3306"
healthcheck:
  test:
	[
	  "CMD",
	  "mysqladmin",
	  "ping",
	  "-h",
	  "localhost",
	  "-u",
	  "root",
	  "-p$MYSQL_ROOT_PASSWORD",
	]


2. migrations 자동화 문제

문제:

  • Django 컨테이너가 반복적으로 재시작되며 health check 실패 (curl 명령어 누락).
  • 데이터베이스 마이그레이션 및 정적 파일 수집 작업 자동화를 위한 실행 실패.

해결책:

  1. 자동 마이그레이션을 실행하기 위해 아래의 command를 docker-compose.yml에 추가
backend: # Django Backend
    build: # Dockerfile 경로
      context: ./backend
      dockerfile: Dockerfile
    container_name: django_backend
    command: >
      sh -c "python manage.py makemigrations && python manage.py migrate &&
        python manage.py collectstatic --noinput &&
        python manage.py runserver 0.0.0.0:8000"


3. Django의 정적 파일 관련 오류

문제:

  • Django의 collectstatic 실행 시 STATIC_ROOT 설정 누락으로 ImproperlyConfigured 오류 발생.

해결책:

  1. backend/settings.py에 다음 설정 추가:
import os
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
  1. Docker Compose의 볼륨 추가:
volumes:
	- ./backend/staticfiles:/app/staticfiles
profile
잘 먹고 잘 살자

0개의 댓글

관련 채용 정보