mein-gitea-projekt/docker-compose.yml

77 lines
1.9 KiB
YAML

networks:
gitea:
external: false
proxy:
external: true
services:
server:
image: docker.gitea.com/gitea:1.23
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=giteaasdf
restart: unless-stopped
networks:
- gitea
- proxy
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- db
db:
container_name: gitea-db
image: postgres:17
restart: unless-stopped
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=giteaasdf
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "gitea", "-d", "gitea"]
interval: 10s
timeout: 5s
retries: 5
postgres-backup:
container_name: gitea-db-backup
networks:
- gitea
image: postgres:17
environment:
PGHOST: db
PGDATABASE: gitea
PGUSER: gitea
PGPASSWORD: giteaasdf
BACKUP_NUM_KEEP: 7
BACKUP_FREQUENCY: 1d
entrypoint: |
bash -c 'bash -s <<EOF
trap "break;exit" SIGHUP SIGINT SIGTERM
sleep 2m
while /bin/true; do
pg_dump -h $$PGHOST -U $$PGUSER -d $$PGDATABASE -Fc > /dump/pg_backup_\`date +%d-%m-%Y"_"%H_%M_%S\`.dump
(ls -t /dump/pg_backup_*.dump|head -n $$BACKUP_NUM_KEEP;ls /dump/pg_backup_*.dump)|sort|uniq -u|xargs rm -f -- 2>/dev/null || true
sleep $$BACKUP_FREQUENCY
done
EOF'
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ./backup-db:/dump