11# Persys Cloud Full Stack Docker Compose
22#
33# This file defines all core services for local development and integration:
4- # - API Gateway, Prow Scheduler, CoreDNS, CFSSL, MongoDB, Prometheus, Grafana, Jaeger, etcd, Node Exporter
5- # - All services are connected via the 'milx-cloud-net' bridge network
6- # - Certificates are shared via the 'certs' volume
4+ # - Persys Gateway, Persys Scheduler, Persys Automation, Persys Forgery, Persys Federation, Persys Intelligence,CoreDNS, Hashicorp Vault, MongoDB, MySQL, Postgres, Prometheus, Grafana, Jaeger, etcd, Node Exporter
5+ # - All services are connected via the 'persys-cloud-net' bridge network
76
87services :
98
@@ -38,34 +37,6 @@ services:
3837 networks :
3938 - persys-cloud-net
4039
41- # --- Persys Forgery (Internal build orchestration only) ---
42- persys-forgery :
43- build : ../../persys-forgery
44- ports :
45- - 8087:8087
46- depends_on :
47- - vault
48- - mysql
49- - redis
50- environment :
51- - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT:-jaeger:4318}
52- - OTEL_SERVICE_NAME=${PERSYS_FORGERY_OTEL_SERVICE_NAME:-persys-forgery}
53- - PERSYS_FORGERY_MYSQL_DSN=${PERSYS_FORGERY_MYSQL_DSN:-forgery:password@tcp(mysql:3306)/forgery_db?parseTime=true}
54- - PERSYS_FORGERY_REDIS_ADDR=${PERSYS_FORGERY_REDIS_ADDR:-redis:6379}
55- - PERSYS_FORGERY_REDIS_PASSWORD=${PERSYS_FORGERY_REDIS_PASSWORD:-}
56- - PERSYS_FORGERY_REDIS_PASSWORD_FILE=${PERSYS_FORGERY_REDIS_PASSWORD_FILE:-}
57- - PERSYS_FORGERY_PIPELINE_STATUS_KEY=${PERSYS_FORGERY_PIPELINE_STATUS_KEY:-pipeline_status}
58- - PERSYS_FORGERY_VAULT_ADDR=${PERSYS_FORGERY_VAULT_ADDR:-http://vault:8200}
59- - PERSYS_FORGERY_VAULT_AUTH_METHOD=${PERSYS_FORGERY_VAULT_AUTH_METHOD:-approle}
60- - PERSYS_FORGERY_VAULT_TOKEN=${PERSYS_FORGERY_VAULT_TOKEN:-}
61- - PERSYS_FORGERY_VAULT_TOKEN_FILE=${PERSYS_FORGERY_VAULT_TOKEN_FILE:-}
62- - PERSYS_FORGERY_VAULT_ROLE_ID=${PERSYS_FORGERY_VAULT_ROLE_ID:-}
63- - PERSYS_FORGERY_VAULT_SECRET_ID=${PERSYS_FORGERY_VAULT_SECRET_ID:-}
64- - PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET=${PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET:-}
65- - PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET_FILE=${PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET_FILE:-}
66- networks :
67- - persys-cloud-net
68-
6940 # --- Persys Scheduler (Workload scheduler and reconciler) ---
7041 persys-scheduler :
7142 build : ../../persys-scheduler
@@ -99,6 +70,34 @@ services:
9970 networks :
10071 - persys-cloud-net
10172
73+ # --- Persys Forgery (Internal build orchestration only) ---
74+ persys-forgery :
75+ build : ../../persys-forgery
76+ ports :
77+ - 8087:8087
78+ depends_on :
79+ - vault
80+ - mysql
81+ - redis
82+ environment :
83+ - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT:-jaeger:4318}
84+ - OTEL_SERVICE_NAME=${PERSYS_FORGERY_OTEL_SERVICE_NAME:-persys-forgery}
85+ - PERSYS_FORGERY_MYSQL_DSN=${PERSYS_FORGERY_MYSQL_DSN:-forgery:password@tcp(mysql:3306)/forgery_db?parseTime=true}
86+ - PERSYS_FORGERY_REDIS_ADDR=${PERSYS_FORGERY_REDIS_ADDR:-redis:6379}
87+ - PERSYS_FORGERY_REDIS_PASSWORD=${PERSYS_FORGERY_REDIS_PASSWORD:-}
88+ - PERSYS_FORGERY_REDIS_PASSWORD_FILE=${PERSYS_FORGERY_REDIS_PASSWORD_FILE:-}
89+ - PERSYS_FORGERY_PIPELINE_STATUS_KEY=${PERSYS_FORGERY_PIPELINE_STATUS_KEY:-pipeline_status}
90+ - PERSYS_FORGERY_VAULT_ADDR=${PERSYS_FORGERY_VAULT_ADDR:-http://vault:8200}
91+ - PERSYS_FORGERY_VAULT_AUTH_METHOD=${PERSYS_FORGERY_VAULT_AUTH_METHOD:-approle}
92+ - PERSYS_FORGERY_VAULT_TOKEN=${PERSYS_FORGERY_VAULT_TOKEN:-}
93+ - PERSYS_FORGERY_VAULT_TOKEN_FILE=${PERSYS_FORGERY_VAULT_TOKEN_FILE:-}
94+ - PERSYS_FORGERY_VAULT_ROLE_ID=${PERSYS_FORGERY_VAULT_ROLE_ID:-}
95+ - PERSYS_FORGERY_VAULT_SECRET_ID=${PERSYS_FORGERY_VAULT_SECRET_ID:-}
96+ - PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET=${PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET:-}
97+ - PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET_FILE=${PERSYS_FORGERY_GITHUB_WEBHOOK_SECRET_FILE:-}
98+ networks :
99+ - persys-cloud-net
100+
102101 # --- Persys Automation (policy engine and control-plane automation) ---
103102 persys-automation :
104103 build : ../../persys-automation
@@ -357,7 +356,7 @@ services:
357356 networks :
358357 - persys-cloud-net
359358
360- # --- Redis (Forgery internal queues) ---
359+ # --- Redis (Persys Scheduler/ Forgery internal queues) ---
361360 redis :
362361 image : redis:7-alpine
363362 restart : unless-stopped
@@ -370,8 +369,8 @@ services:
370369 - persys-cloud-net
371370
372371# --- Postgres (Automation policy and audit store) ---
373- automation- postgres :
374- image : postgres:16 -alpine
372+ postgres :
373+ image : postgres:17 -alpine
375374 restart : unless-stopped
376375 environment :
377376 - POSTGRES_DB=${AUTOMATION_POSTGRES_DB:-persys_automation}
@@ -399,7 +398,7 @@ services:
399398 networks :
400399 - persys-cloud-net
401400
402- # --- etcd (Key-value store for Prow and CoreDNS) ---
401+ # --- etcd (Key-value store for Persys Scheduler and CoreDNS) ---
403402 etcd :
404403 image : quay.io/coreos/etcd:v3.5.0
405404 command : etcd --advertise-client-urls http://etcd:2379 --listen-client-urls http://0.0.0.0:2379 --auto-compaction-retention=1h
0 commit comments