postgres:latest
env_file:
- rugram/.env
volumes:
- postgres_data:/var/lib/postgresql/data
django:
build:
context: .
dockerfile: Dockerfile
command: >
/bin/sh -c "sleep 30 && python manage.py runserver 0.0.0.0:8000"
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
```
мои settings.py в джанго проекте
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydbname',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'db',
'PORT': 5432,
}
}
что я хочу?
успешно запущенная команда с миграциями
python manage.py migrate
что я получаю?
django.db.utils.OperationalError: connection is bad: Name or service not known
база данных существует в постгресе, создавал через docker exec, плюс ко всему отдельно поднимал контейнер db и пробовал запускать контейнер django, при запуске миграций бекенд тупо не видит постгрес
Где именно ты запускаешь эту команду
в докерфайле лежит эта команда с применением миграций, запускаю по обычно через докер компоуз docker-compose up --build
в докерфайле? плохая практика пытаться накатывать миграции во время билда образа
не накатывать миграции в докерфайле и вручную их применить?
надеюсь ты понимаешь что когда ты билдишь композом, это считай тоже самое что билдить просто через docker build. Сеть появляется уже у контейнера, на этапе билда её нет, так как и контейнера нет
Обсуждают сегодня