85 lines
3.1 KiB
YAML
85 lines
3.1 KiB
YAML
name: auto
|
|
|
|
services:
|
|
semaphore:
|
|
image: ${DOCKER_IMAGE}
|
|
container_name: ${COMPOSE_PROJECT_NAME}_app
|
|
restart: unless-stopped
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
environment:
|
|
SEMAPHORE_DB_DIALECT: postgres
|
|
SEMAPHORE_DB_HOST: ${DB_HOST}
|
|
SEMAPHORE_DB_NAME: ${DB_NAME}
|
|
SEMAPHORE_DB_USER: ${DB_USER}
|
|
SEMAPHORE_DB_PASS: ${DB_PASSWORD}
|
|
SEMAPHORE_ADMIN: ${SEMAPHORE_ADMIN}
|
|
SEMAPHORE_ADMIN_PASSWORD: ${SEMAPHORE_ADMIN_PASSWORD}
|
|
SEMAPHORE_ADMIN_NAME: ${SEMAPHORE_ADMIN_NAME}
|
|
SEMAPHORE_ADMIN_EMAIL: ${ADMIN_EMAIL}
|
|
SEMAPHORE_EMAIL_ALERT: "True"
|
|
SEMAPHORE_EMAIL_SENDER: ${EMAIL_FROM}
|
|
SEMAPHORE_EMAIL_HOST: ${EMAIL_SMTP_HOST}
|
|
SEMAPHORE_EMAIL_PORT: ${EMAIL_SMTP_PORT}
|
|
SEMAPHORE_EMAIL_USERNAME: ${EMAIL_SMTP_USER}
|
|
SEMAPHORE_EMAIL_PASSWORD: ${EMAIL_SMTP_PASSWORD}
|
|
SEMAPHORE_EMAIL_SECURE: "true"
|
|
volumes:
|
|
- semaphore_data:/var/lib/semaphore
|
|
- semaphore_config:/etc/semaphore
|
|
- semaphore_tmp:/tmp/semaphore
|
|
# Semaphore has curl available
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/api/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
ports:
|
|
- ${APP_PORT}:${APP_PORT}
|
|
networks:
|
|
- kompose_network
|
|
# labels:
|
|
# - 'traefik.enable=true'
|
|
# - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-redirect-web-secure.redirectscheme.scheme=https'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.middlewares=$COMPOSE_PROJECT_NAME-redirect-web-secure'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.rule=Host(`$TRAEFIK_HOST`)'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.entrypoints=web'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.rule=Host(`$TRAEFIK_HOST`)'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.tls.certresolver=resolver'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.entrypoints=web-secure'
|
|
# - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-web-secure-compress.compress=true'
|
|
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.middlewares=$COMPOSE_PROJECT_NAME-web-secure-compress'
|
|
# - 'traefik.http.services.$COMPOSE_PROJECT_NAME-web-secure.loadbalancer.server.port=$APP_PORT'
|
|
# - 'traefik.docker.network=${NETWORK_NAME:-kompose}'
|
|
|
|
semaphore-runner:
|
|
image: ${RUNNER_IMAGE}
|
|
container_name: ${COMPOSE_PROJECT_NAME}_runner
|
|
restart: unless-stopped
|
|
environment:
|
|
SEMAPHORE_RUNNER_PRIVATE_KEY_FILE: /var/lib/semaphore/runner.key
|
|
SEMAPHORE_WEB_ROOT: http://semaphore:3000
|
|
SEMAPHORE_RUNNER_REGISTRATION_TOKEN: ${JWT_TOKEN}
|
|
volumes:
|
|
- semaphore_data:/var/lib/semaphore
|
|
- semaphore_config:/etc/semaphore
|
|
- semaphore_tmp:/tmp/semaphore
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "test -f /var/lib/semaphore/runner.key"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
networks:
|
|
- kompose_network
|
|
|
|
volumes:
|
|
semaphore_data:
|
|
semaphore_config:
|
|
semaphore_tmp:
|
|
|
|
networks:
|
|
kompose_network:
|
|
name: ${NETWORK_NAME:-kompose}
|
|
external: true
|