# 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 # Network configuration networks: - backend # Connects to backend network # 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 # Network configuration networks: - frontend # Connects to frontend network - backend # Connects to backend network # Internal network definition networks: frontend: external: true # Uses pre-existing frontend network backend: external: true # Uses pre-existing backend network