services: semaphore_db: container_name: semaphore_db image: mysql:8 environment: PUID: ${PUID} PGID: ${PGID} MYSQL_USER: ${SEMAPHORE_DB_USER} MYSQL_PASSWORD: ${SEMAPHORE_DB_PASS} MYSQL_DATABASE: ${SEMAPHORE_DB_NAME} MYSQL_RANDOM_ROOT_PASSWORD: yes volumes: - semaphore_mysql:/var/lib/mysql networks: - semaphore_network restart: unless-stopped semaphore: container_name: semaphore ports: - 3000:3000 image: semaphoreui/semaphore:v2.12.14 environment: PUID: ${PUID} PGID: ${PGID} SEMAPHORE_DB_DIALECT: mysql SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST} SEMAPHORE_DB_NAME: ${SEMAPHORE_DB_NAME} SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER} SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS} SEMAPHORE_EMAIL_SENDER: ${SEMAPHORE_EMAIL_SENDER} SEMAPHORE_EMAIL_HOST: ${SEMAPHORE_EMAIL_HOST} SEMAPHORE_EMAIL_PORT: ${SEMAPHORE_EMAIL_PORT} SEMAPHORE_EMAIL_USERNAME: ${SEMAPHORE_EMAIL_USERNAME} SEMAPHORE_EMAIL_PASSWORD: ${SEMAPHORE_EMAIL_PASSWORD} SEMAPHORE_EMAIL_SECURE: ${SEMAPHORE_EMAIL_SECURE} volumes: - semaphore_data:/var/lib/semaphore - semaphore_config:/etc/semaphore - semaphore_tmp:/tmp/semaphore networks: - semaphore_network restart: unless-stopped networks: semaphore_network: {driver: "bridge"} volumes: semaphore_mysql: semaphore_data: semaphore_config: semaphore_tmp: