70 lines
2.2 KiB
YAML
70 lines
2.2 KiB
YAML
# Gitea Git Service with MariaDB Database Configuration
|
|
services:
|
|
# MariaDB Database Service
|
|
gitea_db:
|
|
# Basic container configuration
|
|
container_name: gitea_db
|
|
image: docker.io/library/mariadb:11.8.2
|
|
restart: unless-stopped
|
|
|
|
# Database optimization parameters
|
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
|
|
|
|
# Database credentials and configuration
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # Root password
|
|
- MYSQL_USER=${MYSQL_USER} # Gitea database user
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD} # Gitea user password
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE} # Database name for Gitea
|
|
|
|
# Persistent storage configuration
|
|
volumes:
|
|
- ${APPDATA_PATH}/gitea/db:/var/lib/mysql
|
|
|
|
# Network port configuration
|
|
ports:
|
|
- ${DB_PORT}:3306 # Maps host port to MariaDB
|
|
|
|
# Health check configuration
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
start_period: 10s # Initial delay before checks
|
|
interval: 10s # Check interval
|
|
timeout: 5s # Check timeout
|
|
retries: 3 # Allowed retries
|
|
|
|
# Gitea Server Service
|
|
gitea_server:
|
|
# Basic container configuration
|
|
container_name: gitea_server
|
|
image: docker.io/gitea/gitea:1.24.2-rootless
|
|
restart: unless-stopped
|
|
|
|
# Service dependencies
|
|
depends_on:
|
|
gitea_db:
|
|
condition: service_healthy # Requires healthy database
|
|
|
|
# Runtime configuration
|
|
user: ${PUID}:${PGID} # Runs as specified user/group
|
|
|
|
# Gitea configuration
|
|
environment:
|
|
- GITEA__database__DB_TYPE=mysql
|
|
- GITEA__database__HOST=gitea_db:3306
|
|
- GITEA__database__NAME=${MYSQL_DATABASE}
|
|
- GITEA__database__USER=${MYSQL_USER}
|
|
- GITEA__database__PASSWD=${MYSQL_PASSWORD}
|
|
|
|
# Persistent storage configuration
|
|
volumes:
|
|
- ${APPDATA_PATH}/gitea/config:/etc/gitea
|
|
- ${APPDATA_PATH}/gitea/data:/var/lib/gitea
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
|
|
# Network port configuration
|
|
ports:
|
|
- ${SERVER_PORT}:3000
|
|
- ${SSH_PORT}:22
|