feat: SugarCRM 6.5.26 CE - Docker + compose + CI/CD
Some checks failed
Docker Build & Push SugarCRM 6.5 CE / build-and-push (push) Has been cancelled

- PHP 5.6 Apache Dockerfile (Debian Jessie, archive repos)
- Source from bklein01/sugarcrm GitHub mirror
- MySQL 5.7 database with healthcheck
- Silent install via init.sh (AdminWizard disabled)
- REST v4.1 API test script (test_api.py)
- Gitea Actions CI/CD for registry push
- Full README with API docs and pitfall notes
This commit is contained in:
root
2026-05-24 14:33:08 +02:00
parent 30905b15d4
commit 1c4a366409
14 changed files with 576 additions and 334 deletions

View File

@@ -1,87 +1,69 @@
# 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
# SugarCRM 6.5.26 CE — Docker Compose Environment
# Start: docker compose up -d
# Stop: docker compose down
# Clean: docker compose down -v (Achtung: löscht ALLE Daten!)
version: '3.8'
services:
# --- SuiteCRM Application ---
suitecrm:
sugarcrm:
build:
context: .
dockerfile: Dockerfile
image: suitecrm:7.15.1
container_name: suitecrm-app
image: sugarce:6.5.26
container_name: sugarce-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
- "${SUGARCRM_PORT:-2080}:80"
depends_on:
mariadb:
db:
condition: service_healthy
environment:
DB_TYPE: mysql
DB_MANAGER: MysqlManager
DB_HOST_NAME: db
DB_TCP_PORT: "3306"
DB_USER_NAME: ${MYSQL_USER:-sugarcrm}
DB_PASSWORD: ${MYSQL_PASSWORD:-sugarcrm_secret}
DATABASE_NAME: ${MYSQL_DATABASE:-sugarcrm}
volumes:
- sugarcrm_custom:/var/www/html/custom
- sugarcrm_upload:/var/www/html/upload
- sugarcrm_config_override:/var/www/html/config_override.php
networks:
- suitecrm-net
- sugarce-net
# --- MariaDB Database ---
mariadb:
image: mariadb:10.11
container_name: suitecrm-db
db:
image: mysql:5.7
container_name: sugarce-db
restart: unless-stopped
ports:
- "${MYSQL_PORT:-3307}:3306"
- "${MYSQL_PORT:-3306}: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}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root_secret}
MYSQL_DATABASE: ${MYSQL_DATABASE:-sugarcrm}
MYSQL_USER: ${MYSQL_USER:-sugarcrm}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-sugarcrm_secret}
volumes:
- mariadb_data:/var/lib/mysql
- mysql_data:/var/lib/mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --character-set-server=utf8
- --collation-server=utf8_general_ci
- --max-allowed-packet=64M
- --innodb-buffer-pool-size=256M
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
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
- sugarce-net
volumes:
suitecrm_data:
suitecrm_custom:
suitecrm_config:
mariadb_data:
redis_data:
sugarcrm_custom:
sugarcrm_upload:
sugarcrm_config_override:
mysql_data:
networks:
suitecrm-net:
sugarce-net:
driver: bridge