120 lines
3 KiB
YAML
120 lines
3 KiB
YAML
services:
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:7
|
|
container_name: forgejo
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- FORGEJO__database__DB_TYPE=postgres
|
|
- FORGEJO__database__HOST=db:5432
|
|
- FORGEJO__database__NAME=forgejo
|
|
- FORGEJO__database__USER=forgejo
|
|
- FORGEJO__database__PASSWD=${DB_PASSWORD}
|
|
- FORGEJO__cache__ADAPTER=redis
|
|
- FORGEJO__cache__HOST=redis://redis:6379/0
|
|
- FORGEJO__session__PROVIDER=redis
|
|
- FORGEJO__session__PROVIDER_CONFIG=redis://redis:6379/1
|
|
- FORGEJO__actions__ENABLED=true
|
|
- FORGEJO__service__SHOW_REGISTRATION_BUTTON=false
|
|
- FORGEJO__server__SSH_PORT=${SSH_PORT}
|
|
- FORGEJO__server__SSH_DOMAIN=${SSH_DOMAIN}
|
|
- FORGEJO__openid__ENABLE_OPENID_SIGNIN=false
|
|
- FORGEJO__openid__ENABLE_OPENID_SIGNUP=false
|
|
- FORGEJO__server__ROOT_URL=${ROOT_URL}
|
|
- FORGEJO__actions__ENABLED=true
|
|
volumes:
|
|
- forgejo-data:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- "3000:3000"
|
|
- "222:22"
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
networks:
|
|
- forgejo-network
|
|
restart: unless-stopped
|
|
|
|
runner:
|
|
image: code.forgejo.org/forgejo/runner:3.3.0
|
|
container_name: forgejo-runner
|
|
environment:
|
|
- DOCKER_HOST=tcp://docker-in-docker:2375
|
|
- DOCKER_TLS_VERIFY=0
|
|
- DOCKER_CERT_PATH=
|
|
volumes:
|
|
- runner-data:/data
|
|
depends_on:
|
|
- forgejo
|
|
- docker-in-docker
|
|
networks:
|
|
- forgejo-network
|
|
restart: unless-stopped
|
|
command: >
|
|
sh -c "
|
|
while ! nc -z forgejo 3000; do sleep 1; done;
|
|
forgejo-runner daemon
|
|
"
|
|
|
|
docker-in-docker:
|
|
image: docker:dind
|
|
container_name: forgejo-dind
|
|
privileged: true
|
|
environment:
|
|
- DOCKER_TLS_CERTDIR=
|
|
volumes:
|
|
- dind-data:/var/lib/docker
|
|
networks:
|
|
- forgejo-network
|
|
restart: unless-stopped
|
|
|
|
db:
|
|
image: postgres:15-alpine
|
|
container_name: forgejo-db
|
|
environment:
|
|
- POSTGRES_USER=forgejo
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
- POSTGRES_DB=forgejo
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
networks:
|
|
- forgejo-network
|
|
restart: unless-stopped
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: forgejo-redis
|
|
volumes:
|
|
- redis-data:/data
|
|
networks:
|
|
- forgejo-network
|
|
restart: unless-stopped
|
|
|
|
watchtower:
|
|
image: containrrr/watchtower
|
|
container_name: forgejo-watchtower
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
- WATCHTOWER_CLEANUP=true
|
|
- WATCHTOWER_INCLUDE_STOPPED=false
|
|
- WATCHTOWER_POLL_INTERVAL=86400
|
|
- WATCHTOWER_LABEL_ENABLE=true
|
|
- DOCKER_API_VERSION=1.40
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
forgejo-data:
|
|
runner-data:
|
|
docker-certs:
|
|
dind-data:
|
|
postgres-data:
|
|
redis-data:
|
|
|
|
networks:
|
|
forgejo-network:
|
|
driver: bridge
|