version: '2.1'
services:
main-gitbucket:
image: pgollor/gitbucket:latest
mem_limit: 2g
restart: always
depends_on:
mysql-gitbucket:
condition: service_healthy
environment:
- GITBUCKET_USER_ID=${GITBUCKET_USER_ID:-9000}
- GITBUCKET_DATABASE_HOST=database
- GITBUCKET_DATABASE_NAME=${GITBUCKET_DATABASE_NAME}
- GITBUCKET_DATABASE_USER=${GITBUCKET_DATABASE_USER}
- GITBUCKET_DATABASE_PASSWORD=${GITBUCKET_DATABASE_PASSWORD}
- GITBUCKET_MAX_FILE_SIZE=${GITBUCKET_MAX_FILE_SIZE:-10485760}
- TZ=${TZ}
volumes:
- ./data/repositories/:/srv/gitbucket/repositories/
- ./data/data/:/srv/gitbucket/data/
- ./data/gist/:/srv/gitbucket/gist/
- ./data/plugins/:/srv/gitbucket/plugins/
- ./data/backup/:/srv/gitbucket/backup/
- ./data/conf/gitbucket/gitbucket.conf:/srv/gitbucket/gitbucket.conf
- ./data/conf/backup.conf:/srv/gitbucket/backup.conf
tmpfs:
- /tmp
ports:
- "${GITBUCKET_WEB_BIND:-127.0.0.1}:${GITBUCKET_WEB_PORT:-8080}:8080"
- "${GITBUCKET_SSH_BIND:-127.0.0.1}:${GITBUCKET_SSH_PORT:-29418}:29418"
links:
- mysql-gitbucket:database
mysql-gitbucket:
image: mariadb:10.3
mem_limit: 1g
restart: always
command: mysqld --skip-name-resolve --skip-host-cache --log-warnings=0
healthcheck:
test: ["CMD", "mysqladmin", "-u$GITBUCKET_DATABASE_USER", "-p$GITBUCKET_DATABASE_PASSWORD", "ping", "-h", "localhost"]
interval: 30s
timeout: 30s
retries: 10
environment:
- MYSQL_ROOT_PASSWORD=${GITBUCKET_DATABASE_ROOT}
- MYSQL_DATABASE=${GITBUCKET_DATABASE_NAME}
- MYSQL_USER=${GITBUCKET_DATABASE_USER}
- MYSQL_PASSWORD=${GITBUCKET_DATABASE_PASSWORD}
volumes:
- mysql-vol-1:/var/lib/mysql/
- ./data/conf/mysql:/etc/mysql/conf.d/:ro
volumes:
mysql-vol-1: