Uruchomiliśmy juz projekt oparty na
Django za pomocą Dockera, teraz przyszedł czas na podpięcie bazy PostgreSQL.
Konfigurujemy Dockera
Modyfikujemy nasz plik docker-compose.yml
version: '3.7'
services:
web:
build: .
command: sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code/
ports:
- "8000:8000"
env_file:
- ./env
depends_on:
- db
db:
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=testdocker
- POSTGRES_PASSWORD=testdocker
- POSTGRES_DB=testdocker
volumes:
postgres_data:
Dodajemy do projektu plik env
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=testdocker
SQL_USER=testdocker
SQL_PASSWORD=testdocker
SQL_HOST=db
SQL_PORT=5432
Musimy teraz zmodyfikować nasze settingsy, tak aby korzystały z bazy PostgreSQL a nie domyślnej Sqlite.
DATABASES = {
"default": {
"ENGINE": os.environ.get("SQL_ENGINE", "django.db.backends.sqlite3"),
"NAME": os.environ.get("SQL_DATABASE", os.path.join(BASE_DIR, "db.sqlite3")),
"USER": os.environ.get("SQL_USER"),
"PASSWORD": os.environ.get("SQL_PASSWORD"),
"HOST": os.environ.get("SQL_HOST", "localhost"),
"PORT": os.environ.get("SQL_PORT", "5432"),
"TEST": {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'test-db.sqlite3',
},
},
}
Do pliku requirements.txt dodajemy psycopg2-binary==2.8.4
# Budujemy nowe kontenery
docker-compose build
docker-compose up -d
Sprawdzamy czy zostały dodane tabelki do bazy
Komentarze