Files
openworker/deploy/reference/compose.yaml

69 lines
2.8 KiB
YAML

# Native harness/console bind loopback on the host. Only backing services here.
# Isolated named volumes survive `down`. No Docker socket or privileged mounts.
services:
postgres:
image: postgres:16-alpine@sha256:cf78e76683b9ca8c5733cbbdce6c9262b45b6767934dd0a95e671f9a0fc20685
environment:
POSTGRES_USER: openworker
POSTGRES_DB: openworker
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
secrets: [postgres_password]
ports: ["127.0.0.1:${PG_PORT}:5432"]
volumes: ["postgres:/var/lib/postgresql/data"]
networks: [database]
mem_limit: 512m
healthcheck:
test: [CMD-SHELL, "pg_isready -U openworker -d openworker"]
interval: 2s
timeout: 2s
retries: 30
objects:
image: chrislusf/seaweedfs:4.48@sha256:4e61d15fd35994cb1e43e1e553dff106794841fd9a99ade2fc8c8bfce4d7872d
command: [mini, "-dir=/data", "-s3.config=/run/secrets/s3_config", "-bucket=openworker-artifacts", "-admin.ui=false", "-webdav=false", "-volume.max=4"]
secrets: [s3_config]
ports: ["127.0.0.1:${S3_PORT}:8333"]
volumes: ["objects:/data"]
networks: [objects]
mem_limit: 768m
stop_grace_period: 30s
observability:
profiles: [observability]
image: grafana/otel-lgtm:0.36.0@sha256:57c04cbd8e7022f32bb84c4ac005d79baf8b08e2c5be44facf11f5f1f9944ba2
environment:
GF_AUTH_ANONYMOUS_ENABLED: "false"
GF_USERS_ALLOW_SIGN_UP: "false"
GF_ANALYTICS_REPORTING_ENABLED: "false"
GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
GF_PLUGINS_PREINSTALL_DISABLED: "true"
GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH: /otel-lgtm/grafana/conf/provisioning/dashboards/openworker/dashboard.json
ENABLE_OBI: "false"
ENABLE_LOGS_GRAFANA: "true"
entrypoint: ["/bin/sh", "/reference/observability-entrypoint.sh"]
secrets: [grafana_password]
ports: ["127.0.0.1:${GRAFANA_PORT}:3000", "127.0.0.1:${OTLP_PORT}:4318"]
volumes:
- telemetry:/data
- ./observability-entrypoint.sh:/reference/observability-entrypoint.sh:ro
- ./dashboards/provider.yaml:/otel-lgtm/grafana/conf/provisioning/dashboards/openworker.yaml:ro
- ./dashboards/dashboard.json:/otel-lgtm/grafana/conf/provisioning/dashboards/openworker/dashboard.json:ro
- ${STATE_DIR}/operations-dashboard.json:/otel-lgtm/grafana/conf/provisioning/dashboards/openworker/operations-v1.json:ro
- ${STATE_DIR}/operations-alerts.json:/otel-lgtm/grafana/conf/provisioning/alerting/openworker.json:ro
networks: [telemetry]
mem_limit: 2g
stop_grace_period: 30s
secrets:
postgres_password:
file: ${STATE_DIR}/private/postgres-password
s3_config:
file: ${STATE_DIR}/private/s3.json
grafana_password:
file: ${STATE_DIR}/private/grafana-password
volumes:
postgres:
objects:
telemetry:
networks:
database:
objects:
telemetry: