services: # ================= BACKEND ================= attendancesystem-api: image: ${DOCKER_REPO}/backend-attendance-system-api:${IMAGEM_RELEASE_1_3} profiles: ["app"] ports: - "${BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT}:${BACKEND_ATTENDANCESYSTEM_API_INTERNAL_PORT}" environment: - SYSBASE_URL=${SYSTEM_BASE_CONN} - SystemBaseConn=${SYSTEM_BASE_CONN} - FrotendConn=${EXTERNAL_HOST}:${FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT} networks: - app-network # ================= FRONTEND ================= config-generator: image: alpine:${IMAGEM_LATEST} profiles: ["app"] environment: - BACKEND_HOST=${SYSTEM_BASE_HOST} - BACKEND_PORT=${SYSTEM_BASE_PORT} - FRONTEND_SUITE_URL=${EXTERNAL_HOST}:${FRONTEND_SUITE_APP_EXTERNAL_PORT} - FRONTEND_ATTENDANCE_URL=${EXTERNAL_HOST}:${FRONTEND_ATTENDANCESYSTEM_APP_EXTERNAL_PORT} - FRONTEND_ACCOUNT_URL=${EXTERNAL_HOST}:${FRONTEND_ACCOUNT_APP_EXTERNAL_PORT} - FRONTEND_PEOPLE_URL=${EXTERNAL_HOST}:${FRONTEND_PEOPLE_APP_EXTERNAL_PORT} - BACKEND_SUITE_API_URL=${EXTERNAL_HOST}:${BACKEND_SUITE_API_EXTERNAL_PORT} - BACKEND_ATTENDANCE_API_URL=${EXTERNAL_HOST}:${BACKEND_ATTENDANCESYSTEM_API_EXTERNAL_PORT} - BACKEND_PEOPLE_API_URL=${EXTERNAL_HOST}:${BACKEND_PEOPLE_API_EXTERNAL_PORT} - BACKEND_ACCOUNT_API_URL=${EXTERNAL_HOST}:${BACKEND_ACCOUNT_API_EXTERNAL_PORT} command: > sh -c "apk add --no-cache gettext && envsubst < /config.template.json > /output/config.json && echo '✅ Config gerado com sucesso' && chmod 644 /output/config.json" volumes: - ./config.template.json:/config.template.json - config-volume:/output restart: "no" attendancesystem-app: image: ${DOCKER_REPO}/attendancesystem-frontend:${IMAGEM_RELEASE_1_3} profiles: ["app"] volumes: - config-volume:/config-inject:ro entrypoint: > sh -c "cp /config-inject/config.json /usr/share/nginx/html/config.json && nginx -g 'daemon off;'" ports: - "${FRONTEND_ATTENDANCESYSTEM_APP_INTERNAL_PORT}:${NGINX_DEFAULT_PORT}" networks: - app-network depends_on: config-generator: condition: service_completed_successfully networks: app-network: name: attendancesystem-network volumes: config-volume: