From 0ec1d492ca49c6a5c0af34ab5f30dd8ec71f1840 Mon Sep 17 00:00:00 2001 From: Stefan Date: Sat, 4 Jan 2025 16:57:54 +0100 Subject: [PATCH] example docker-compose.yml for Semaphore-UI --- docker/semaphoreui/docker-compose.yml | 91 +++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docker/semaphoreui/docker-compose.yml diff --git a/docker/semaphoreui/docker-compose.yml b/docker/semaphoreui/docker-compose.yml new file mode 100644 index 0000000..3dcda09 --- /dev/null +++ b/docker/semaphoreui/docker-compose.yml @@ -0,0 +1,91 @@ +version: "3" +services: + + # + # Database Container + # + mysql: + image: mysql:8.0 + hostname: mysql + environment: + MYSQL_RANDOM_ROOT_PASSWORD: 'yes' + MYSQL_DATABASE: "${SEMAPHOREUI_DATABASE_NAME}" + MYSQL_USER: "${SEMAPHOREUI_DATABASE_USERNAME}" + MYSQL_PASSWORD: "${SEMAPHOREUI_DATABASE_PASSWORD}" + TZ: 'Europe/Berlin' + volumes: + - semaphore-mysql:/var/lib/mysql + restart: unless-stopped + + # + # Application Container + # + semaphore: + image: semaphoreui/semaphore:latest + environment: + GIT_SSL_NO_VERIFY: 'true' + ANSIBLE_HOST_KEY_CHECKING: 'false' + SEMAPHORE_DB_USER: "${SEMAPHOREUI_DATABASE_USERNAME}" + SEMAPHORE_DB_PASS: "${SEMAPHOREUI_DATABASE_PASSWORD}" + SEMAPHORE_DB_HOST: mysql + SEMAPHORE_DB_PORT: 3306 + SEMAPHORE_DB_DIALECT: mysql + SEMAPHORE_DB: "${SEMAPHOREUI_DATABASE_NAME}" + SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/ + SEMAPHORE_ADMIN: "${SEMAPHOREUI_ADMIN_USERNAME}" + SEMAPHORE_ADMIN_NAME: "${SEMAPHOREUI_ADMIN_USERNAME}" + SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHOREUI_ADMIN_PASSWORD}" + SEMAPHORE_ADMIN_EMAIL: "${SEMAPHOREUI_ADMIN_EMAIL}" + SEMAPHORE_ACCESS_KEY_ENCRYPTION: "${SEMAPHOREUI_ACCESS_KEY}" + SEMAPHORE_LDAP_ACTIVATED: 'yes' + SEMAPHORE_LDAP_HOST: "${SEMAPHOREUI_LDAP_HOST}" + SEMAPHORE_LDAP_PORT: '636' + SEMAPHORE_LDAP_NEEDTLS: 'yes' + SEMAPHORE_LDAP_DN_BIND: "${SEMAPHOREUI_LDAP_BIND_USERNAME}" + SEMAPHORE_LDAP_PASSWORD: "${SEMAPHOREUI_LDAP_BIND_PASSWORD}" + SEMAPHORE_LDAP_DN_SEARCH: 'dc=example,dc=com' + SEMAPHORE_LDAP_SEARCH_FILTER: "(&(sAMAccountName=%s)(memberOf=CN=semaphoreui.users,dc=example,dc=com))" + SEMAPHORE_LDAP_MAPPING_MAIL: 'mail' + SEMAPHORE_LDAP_MAPPING_UID: 'sAMAccountName' + SEMAPHORE_LDAP_MAPPING_DN: 'dn' + SEMAPHORE_LDAP_MAPPING_CN: 'cn' + SEMAPHORE_EMAIL_SENDER: "${SEMAPHOREUI_EMAIL_SENDER}" + SEMAPHORE_EMAIL_HOST: "${SEMAPHOREUI_SMTP_HOST}" + SEMAPHORE_EMAIL_PORT: "${SEMAPHOREUI_SMTP_PORT}" + SEMAPHORE_EMAIL_USERNAME: "${SEMAPHOREUI_SMTP_USERNAME}" + SEMAPHORE_EMAIL_PASSWORD: "${SEMAPHOREUI_SMTP_PASSWORD}" + SEMAPHORE_EMAIL_SECURE: 'true' + SEMAPHORE_EMAIL_ALERT: 'true' + TZ: 'Europe/Berlin' + ports: + - 127.0.0.1:3000:3000 + volumes: + - /var/semaphoreui/requirements.txt:/etc/semaphore/requirements.txt + restart: unless-stopped + labels: + - "autoheal=true" + healthcheck: + test: curl --fail http://localhost:3000 || exit 1 + interval: 60s + retries: 5 + start_period: 20s + timeout: 10s + depends_on: + - mysql + + # + # Autoheal Container + # + autoheal: + image: willfarrell/autoheal:latest + tty: true + restart: always + environment: + - AUTOHEAL_INTERVAL=60 + - AUTOHEAL_START_PERIOD=300 + - AUTOHEAL_DEFAULT_STOP_TIMEOUT=10 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + +volumes: + semaphore-mysql: