Files
docker-compose/gitea/docker-compose-mariadb.yml
2025-07-14 21:51:12 +05:30

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