88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
# SuiteCRM Docker Compose Environment
|
|
# ====================================
|
|
# Start: docker compose up -d
|
|
# Stop: docker compose down
|
|
# Data persists in Docker volumes unless you run: docker compose down -v
|
|
|
|
services:
|
|
# --- SuiteCRM Application ---
|
|
suitecrm:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: suitecrm:7.15.1
|
|
container_name: suitecrm-app
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${SUITECRM_PORT:-8080}:80"
|
|
environment:
|
|
- DATABASE_HOST=mariadb
|
|
- DATABASE_PORT=3306
|
|
- DATABASE_NAME=${MYSQL_DATABASE:-suitecrm}
|
|
- DATABASE_USER=${MYSQL_USER:-suitecrm}
|
|
- DATABASE_PASSWORD=${MYSQL_PASSWORD:-suitecrm_secret}
|
|
- SUITECRM_SITE_URL=${SUITECRM_SITE_URL:-http://localhost:8080}
|
|
volumes:
|
|
- suitecrm_data:/var/www/html/upload
|
|
- suitecrm_custom:/var/www/html/custom
|
|
- suitecrm_config:/var/www/html/config_override.php
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
networks:
|
|
- suitecrm-net
|
|
|
|
# --- MariaDB Database ---
|
|
mariadb:
|
|
image: mariadb:10.11
|
|
container_name: suitecrm-db
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${MYSQL_PORT:-3307}:3306"
|
|
environment:
|
|
- MARIADB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root_secret}
|
|
- MARIADB_DATABASE=${MYSQL_DATABASE:-suitecrm}
|
|
- MARIADB_USER=${MYSQL_USER:-suitecrm}
|
|
- MARIADB_PASSWORD=${MYSQL_PASSWORD:-suitecrm_secret}
|
|
volumes:
|
|
- mariadb_data:/var/lib/mysql
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --max-allowed-packet=64M
|
|
- --innodb-buffer-pool-size=256M
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- suitecrm-net
|
|
|
|
# --- Redis Cache (optional) ---
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: suitecrm-redis
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${REDIS_PORT:-6379}:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
|
|
networks:
|
|
- suitecrm-net
|
|
profiles:
|
|
- full
|
|
- redis
|
|
|
|
volumes:
|
|
suitecrm_data:
|
|
suitecrm_custom:
|
|
suitecrm_config:
|
|
mariadb_data:
|
|
redis_data:
|
|
|
|
networks:
|
|
suitecrm-net:
|
|
driver: bridge
|