diff --git a/.env.example b/.env.example index a33b168..adff822 100644 --- a/.env.example +++ b/.env.example @@ -6,5 +6,4 @@ UID=1000 GID=1000 DATABASE_ENGINE= postgresql_psycopg2 -DATABASE_HOST=db DATABASE_PORT=5432 diff --git a/docker-compose.yml b/docker-compose.yml index 7ef1e00..dd912f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,7 @@ services: db: image: postgres:17 + container_name: djangodocker-db environment: POSTGRES_DB: ${DATABASE_NAME} POSTGRES_USER: ${DATABASE_USERNAME} @@ -11,6 +12,12 @@ services: - "5432:5432" volumes: - djangodocker_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready", "-d", "$DATABASE_NAME"] + interval: 30s + timeout: 60s + retries: 5 + start_period: 80s api: build: . @@ -19,7 +26,8 @@ services: ports: - "8000:8000" depends_on: - - db + db: + condition: service_healthy environment: DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY} DEBUG: ${DEBUG} diff --git a/firstRun.sh b/firstRun.sh index 7a17ce5..eef77cb 100755 --- a/firstRun.sh +++ b/firstRun.sh @@ -30,8 +30,13 @@ then DATABASE_PASSWORD=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 15) fi +echo "user is $DATABASE_USERNAME" +echo "pass is $DATABASE_PASSWORD" +echo "DATABASE_NAME is ${PROJECT_NAME}" + SECRET_KEY=$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 50) { + echo "DATABASE_HOST=${PROJECT_NAME}-db" echo "DATABASE_NAME=${PROJECT_NAME}" echo "DATABASE_USERNAME=${DATABASE_USERNAME}" echo "DATABASE_PASSWORD=${DATABASE_PASSWORD}" @@ -47,9 +52,10 @@ echo "===== STARTING DOCKER =====" docker compose up -d --build echo "===== MIGRATING DATABASE =====" -docker exec -ti "${PROJECT_NAME}-api" ./manage.py migrate +echo "Running: docker exec -ti ${PROJECT_NAME}-api ./manage.py migrate" +docker exec -ti "${PROJECT_NAME}-api" ./manage.py migrate echo "===== CREATE SUPERUSER =====" -docker exec -ti "${PROJECT_NAME}-api" ./manage.py createsuperuser +docker exec -ti "${PROJECT_NAME}-api" ./manage.py createsuperuser echo "Success! Go to http://localhost:8000 to see API documentation."