그런데 에러가 발생했다.
에러1 : google-auth를 임포트할 수 없음
원인 : requirements.txt에 google-auth가 없음
해결
pip install google-auth
pip freeze | grep google-auth
해서 나온거 requirements.txt에 복붙!
에러2 : django 서버에서 mysql 서버에 연결하지 못함
원인 : 데이터베이스 호스트 설정에 문제가 있음
해결
settings.py에서
DATABASES = {
'default': {
...
'HOST': os.environ.get('DB_HOST', "db이름"),
# db이름 : docker-compose.yml에서 설정한 db이름
...
}
}
docker-compose.yml에서
services:
django서버이름:
# django서버이름 : 만든 django 서버의 이름
...
environment:
- DB_HOST=db이름
...
각자의 db이름과 django 앱 이름에 맞게 바꿔 넣으세요.
추가 문제 : db가 다 준비되기 전에 django에서 연결 시도
해결
docker-compose.yml에서
services:
db이름:
...
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
django서버이름:
...
depends_on:
db:
condition: service_healthy
도커 어렵다... 왜 문제인지 근본적인게 확 와닿지 않는다.