version: "3.8" services: jobs-app: build: . ports: - "8000:8000" environment: # Required environment variables - FLASK_SECRET=${FLASK_SECRET:?} - FLASK_ENV=${FLASK_ENV:?production} # Coolify magic variables - SERVICE_FQDN_JOBS_APP - ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN:?M11ffpgm.} - DB_USER=${SERVICE_USER_DB:?jobs} - DB_PASSWORD=${SERVICE_PASSWORD_DB:?jobdb} # Optional configuration - GUNICORN_WORKERS=${GUNICORN_WORKERS:-4} volumes: - type: bind source: ./cache target: /app/cache - type: bind source: ./logs target: /app/logs depends_on: - mysql labels: - coolify.managed=true - traefik.enable=true - "traefik.http.routers.jobs-app.rule=Host(`${SERVICE_FQDN_JOBS_APP:-localhost}`)" - traefik.http.routers.jobs-app.entryPoints=https - "traefik.http.routers.jobs-app.middlewares=https-redirect" - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https" networks: - jobs-network restart: unless-stopped mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:?rootpassword} - MYSQL_DATABASE=jobs - MYSQL_USER=${DB_USER:-jobs} - MYSQL_PASSWORD=${DB_PASSWORD:-jobdb} ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./mysql-init:/docker-entrypoint-initdb.d networks: - jobs-network volumes: mysql_data: networks: jobs-network: driver: bridge