diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4125bf0..61f95bc 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -39,14 +39,8 @@ jobs: - name: Backup database before deploy run: | - mkdir -p ./data/backups docker exec galaxis-po-db pg_dump -U ${{ secrets.DB_USER }} ${{ secrets.DB_NAME }} \ - > ./data/backups/$(date +%Y%m%d_%H%M%S).sql 2>/dev/null || true - - - name: Ensure data directories exist - run: | - mkdir -p ./data/postgres - mkdir -p ./data/backups + > /tmp/galaxis-po-backup-$(date +%Y%m%d_%H%M%S).sql 2>/dev/null || true - name: Deploy with Docker Compose run: | diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 3e7ac8f..80dc452 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,5 +1,11 @@ # Production Docker Compose # Usage: docker compose -f docker-compose.prod.yml up -d +# +# DB data is stored in a named volume (galaxis-po_postgres_data). +# This survives container recreation and avoids path resolution issues +# when deploying via CI runners with shared Docker sockets. +# To back up: docker exec galaxis-po-db pg_dump -U $DB_USER $DB_NAME > backup.sql +# Volume is only removed with: docker volume rm galaxis-po_postgres_data services: postgres: @@ -10,7 +16,7 @@ services: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} volumes: - - ./data/postgres:/var/lib/postgresql/data + - postgres_data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"] interval: 5s @@ -63,3 +69,7 @@ services: networks: galaxy-net: driver: bridge + +volumes: + postgres_data: + driver: local