diff --git a/postgres/docker-compose-postgres.yml b/postgres/docker-compose-postgres.yml new file mode 100644 index 0000000..6a9155d --- /dev/null +++ b/postgres/docker-compose-postgres.yml @@ -0,0 +1,47 @@ +services: + postgres: + image: ${POSTGRESQL_IMAGE} + container_name: ${POSTGRESQL_CONTAINER_NAME} + hostname: ${POSTGRESQL_HOSTNAME_NAME} + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} + restart: always + ports: + - "5432:5432" + volumes: + - ./data:/var/lib/postgresql/data + - ./backups:/backups + networks: + - postgres-network + + + + init-db: + image: ${POSTGRESQL_IMAGE} + container_name: ${INITDB_CONTAINER_NAME} + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} + volumes: + - ./backups:/backups + depends_on: + - postgres + networks: + - postgres-network + entrypoint: > + bash -c " + echo 'Waiting for PostgreSQL to start...'; + until pg_isready -h postgres -U admin; do sleep 1; done; + echo 'Creating database and restoring backup...'; + psql -h postgres -U admin -c 'CREATE DATABASE mydb;'; + pg_restore -h postgres -U admin -d mydb /backups/backup.dump; + echo 'Backup restored successfully.'; + " + restart: on-failure + +networks: + postgres-network: + driver: bridge \ No newline at end of file