feat: SuiteCRM Docker + compose + CI/CD
Some checks failed
Docker Build & Push / build-and-push (push) Has been cancelled
Some checks failed
Docker Build & Push / build-and-push (push) Has been cancelled
This commit is contained in:
87
docker-compose.yml
Normal file
87
docker-compose.yml
Normal file
@@ -0,0 +1,87 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user