77 lines
1.9 KiB
YAML
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
|