fix: use host bind mount for postgres data to prevent data loss on deploy

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
zephyrdark 2026-02-11 23:26:55 +09:00
parent 08710a6dba
commit 75a408362e
2 changed files with 12 additions and 5 deletions

View File

@ -37,6 +37,17 @@ jobs:
ADMIN_PASSWORD=${{ secrets.ADMIN_PASSWORD }}
EOF
- name: Backup database before deploy
run: |
mkdir -p /opt/galaxis-po/backups
docker exec galaxis-po-db pg_dump -U ${{ secrets.DB_USER }} ${{ secrets.DB_NAME }} \
> /opt/galaxis-po/backups/$(date +%Y%m%d_%H%M%S).sql 2>/dev/null || true
- name: Ensure data directories exist
run: |
mkdir -p /opt/galaxis-po/postgres-data
mkdir -p /opt/galaxis-po/backups
- name: Deploy with Docker Compose
run: |
docker compose --project-name galaxis-po --env-file .env.prod -f docker-compose.prod.yml down || true

View File

@ -10,7 +10,7 @@ services:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
volumes:
- postgres_data:/var/lib/postgresql/data
- /opt/galaxis-po/postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
@ -60,10 +60,6 @@ services:
networks:
- galaxy-net
volumes:
postgres_data:
driver: local
networks:
galaxy-net:
driver: bridge