107 lines
3.0 KiB
YAML
107 lines
3.0 KiB
YAML
x-defaults: &defaults
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: "3"
|
|
|
|
services:
|
|
kodbox:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}kodcloud/kodbox:${KODBOX_VERSION:-1.62}
|
|
ports:
|
|
- "${KODBOX_PORT:-80}:80"
|
|
volumes:
|
|
- kodbox_data:/var/www/html
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- MYSQL_HOST=${MYSQL_HOST:-kodbox-db}
|
|
- MYSQL_PORT=${MYSQL_PORT:-3306}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE:-kodbox}
|
|
- MYSQL_USER=${MYSQL_USER:-kodbox}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-kodbox123}
|
|
- REDIS_HOST=${REDIS_HOST:-kodbox-redis}
|
|
- REDIS_PORT=${REDIS_PORT:-6379}
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
|
depends_on:
|
|
kodbox-db:
|
|
condition: service_healthy
|
|
kodbox-redis:
|
|
condition: service_healthy
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${KODBOX_CPU_LIMIT:-2.0}
|
|
memory: ${KODBOX_MEMORY_LIMIT:-2G}
|
|
reservations:
|
|
cpus: ${KODBOX_CPU_RESERVATION:-0.5}
|
|
memory: ${KODBOX_MEMORY_RESERVATION:-256M}
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
kodbox-db:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}mysql:${MYSQL_VERSION:-9.4.0}
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE:-kodbox}
|
|
- MYSQL_USER=${MYSQL_USER:-kodbox}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-kodbox123}
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --default-authentication-plugin=mysql_native_password
|
|
volumes:
|
|
- kodbox_db_data:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-root123}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${KODBOX_DB_CPU_LIMIT:-1.0}
|
|
memory: ${KODBOX_DB_MEMORY_LIMIT:-1G}
|
|
reservations:
|
|
cpus: ${KODBOX_DB_CPU_RESERVATION:-0.25}
|
|
memory: ${KODBOX_DB_MEMORY_RESERVATION:-256M}
|
|
|
|
kodbox-redis:
|
|
<<: *defaults
|
|
image: ${GLOBAL_REGISTRY:-}redis:${REDIS_VERSION:-8.2.1-alpine3.22}
|
|
command:
|
|
- redis-server
|
|
- --requirepass
|
|
- ${REDIS_PASSWORD:-}
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
volumes:
|
|
- kodbox_redis_data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 5
|
|
start_period: 10s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${KODBOX_REDIS_CPU_LIMIT:-0.50}
|
|
memory: ${KODBOX_REDIS_MEMORY_LIMIT:-512M}
|
|
reservations:
|
|
cpus: ${KODBOX_REDIS_CPU_RESERVATION:-0.25}
|
|
memory: ${KODBOX_REDIS_MEMORY_RESERVATION:-128M}
|
|
|
|
volumes:
|
|
kodbox_data:
|
|
kodbox_db_data:
|
|
kodbox_redis_data:
|