Skip to content

Commit 39b0cf2

Browse files
committed
split into multiple files
1 parent b356c79 commit 39b0cf2

File tree

3 files changed

+136
-96
lines changed

3 files changed

+136
-96
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: trigger
2+
3+
services:
4+
webapp:
5+
networks:
6+
- traefik
7+
labels:
8+
- "traefik.enable=true"
9+
- "traefik.http.routers.webapp.rule=Host(`webapp.localhost`)"
10+
- "traefik.http.routers.webapp.entrypoints=${TRAEFIK_ENTRYPOINT:-web}"
11+
# - "traefik.http.routers.webapp.tls.certresolver=letsencrypt"
12+
- "traefik.http.services.webapp.loadbalancer.server.port=3000"
13+
14+
registry:
15+
networks:
16+
- traefik
17+
labels:
18+
- "traefik.enable=true"
19+
- "traefik.http.routers.registry.rule=Host(`registry.localhost`)"
20+
- "traefik.http.routers.registry.entrypoints=${TRAEFIK_ENTRYPOINT:-web}"
21+
# - "traefik.http.routers.registry.tls.certresolver=letsencrypt"
22+
- "traefik.http.services.registry.loadbalancer.server.port=5000"
23+
24+
minio:
25+
networks:
26+
- traefik
27+
labels:
28+
- "traefik.enable=true"
29+
- "traefik.http.routers.minio.rule=Host(`minio.localhost`)"
30+
- "traefik.http.routers.minio.entrypoints=${TRAEFIK_ENTRYPOINT:-web}"
31+
# - "traefik.http.routers.minio.tls.certresolver=letsencrypt"
32+
- "traefik.http.services.minio.loadbalancer.server.port=9000"
33+
34+
traefik:
35+
image: traefik:${TRAEFIK_IMAGE_TAG:-v3.4}
36+
restart: ${RESTART_POLICY:-unless-stopped}
37+
ports:
38+
- "80:80"
39+
- "443:443"
40+
- "8080:8080" # Traefik dashboard
41+
networks:
42+
- traefik
43+
command:
44+
- --api.insecure=true
45+
- --providers.docker=true
46+
- --providers.docker.exposedbydefault=false
47+
- --providers.docker.network=traefik
48+
- --entrypoints.web.address=:80
49+
- --entrypoints.websecure.address=:443
50+
# - --certificatesresolvers.letsencrypt.acme.tlschallenge=true
51+
# - --certificatesresolvers.letsencrypt.acme.email=local@example.com
52+
# - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
53+
- --log.level=DEBUG
54+
volumes:
55+
- /var/run/docker.sock:/var/run/docker.sock:ro
56+
- traefik-letsencrypt:/letsencrypt
57+
58+
volumes:
59+
minio:
60+
traefik-letsencrypt:
61+
62+
networks:
63+
traefik:
64+
name: traefik

hosting/docker/docker-compose.yml renamed to hosting/docker/docker-compose.webapp.yml

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ services:
1212
networks:
1313
- webapp
1414
- supervisor
15-
- traefik
1615
volumes:
1716
- shared:/home/node/shared
1817
user: root
@@ -52,74 +51,6 @@ services:
5251
# TASK_RUN_METADATA_MAXIMUM_SIZE: 262144 # 256KB
5352
# DEFAULT_ENV_EXECUTION_CONCURRENCY_LIMIT: 100
5453
# DEFAULT_ORG_EXECUTION_CONCURRENCY_LIMIT: 100
55-
labels:
56-
- "traefik.enable=true"
57-
- "traefik.http.routers.webapp.rule=Host(`webapp.localhost`)"
58-
- "traefik.http.routers.webapp.entrypoints=${TRAEFIK_ENTRYPOINT:-web}"
59-
# - "traefik.http.routers.webapp.tls.certresolver=letsencrypt"
60-
- "traefik.http.services.webapp.loadbalancer.server.port=3000"
61-
62-
supervisor:
63-
image: ghcr.io/triggerdotdev/supervisor:${TRIGGER_IMAGE_TAG:-main}
64-
restart: ${RESTART_POLICY:-unless-stopped}
65-
depends_on:
66-
- webapp
67-
- docker-proxy
68-
networks:
69-
- supervisor
70-
- docker-proxy
71-
volumes:
72-
- shared:/home/node/shared
73-
user: root
74-
command: sh -c "chown -R node:node /home/node/shared && exec /usr/bin/dumb-init -- pnpm run --filter supervisor start"
75-
environment:
76-
# This needs to match the token of the worker group you want to connect to
77-
# TRIGGER_WORKER_TOKEN: ${TRIGGER_WORKER_TOKEN}
78-
TRIGGER_WORKER_TOKEN: file:///home/node/shared/worker_token
79-
MANAGED_WORKER_SECRET: ${MANAGED_WORKER_SECRET}
80-
# Point this at the webapp in prod
81-
TRIGGER_API_URL: http://webapp:3000
82-
# Point this at the OTel collector or the webapp in prod
83-
OTEL_EXPORTER_OTLP_ENDPOINT: http://webapp:3000/otel
84-
TRIGGER_WORKLOAD_API_DOMAIN: supervisor
85-
TRIGGER_WORKLOAD_API_PORT_EXTERNAL: 8020
86-
# Optional settings
87-
DEBUG: 1
88-
ENFORCE_MACHINE_PRESETS: 1
89-
TRIGGER_DEQUEUE_INTERVAL_MS: 1000
90-
DOCKER_HOST: tcp://docker-proxy:2375
91-
DOCKER_RUNNER_NETWORKS: webapp,supervisor
92-
DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-localhost:5000}
93-
DOCKER_REGISTRY_USERNAME: ${DOCKER_REGISTRY_USERNAME:-}
94-
DOCKER_REGISTRY_PASSWORD: ${DOCKER_REGISTRY_PASSWORD:-}
95-
DOCKER_AUTOREMOVE_EXITED_CONTAINERS: 0
96-
healthcheck:
97-
test: ["CMD", "node", "-e", "http.get('http://localhost:8020/health', res => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"]
98-
interval: 30s
99-
timeout: 10s
100-
retries: 5
101-
start_period: 10s
102-
103-
docker-proxy:
104-
image: tecnativa/docker-socket-proxy:${DOCKER_PROXY_IMAGE_TAG:-latest}
105-
restart: ${RESTART_POLICY:-unless-stopped}
106-
volumes:
107-
- /var/run/docker.sock:/var/run/docker.sock:ro
108-
networks:
109-
- docker-proxy
110-
environment:
111-
- LOG_LEVEL=info
112-
- POST=1
113-
- CONTAINERS=1
114-
- IMAGES=1
115-
- INFO=1
116-
- NETWORKS=1
117-
healthcheck:
118-
test: ["CMD", "nc", "-z", "127.0.0.1", "2375"]
119-
interval: 30s
120-
timeout: 5s
121-
retries: 5
122-
start_period: 5s
12354

12455
postgres:
12556
image: postgres:${POSTGRES_IMAGE_TAG:-14}
@@ -240,41 +171,14 @@ services:
240171
retries: 5
241172
start_period: 10s
242173

243-
traefik:
244-
image: traefik:${TRAEFIK_IMAGE_TAG:-v3.4}
245-
restart: ${RESTART_POLICY:-unless-stopped}
246-
ports:
247-
- "80:80"
248-
- "443:443"
249-
- "8080:8080" # Traefik dashboard
250-
networks:
251-
- traefik
252-
command:
253-
- --api.insecure=true
254-
- --providers.docker=true
255-
- --providers.docker.exposedbydefault=false
256-
- --providers.docker.network=traefik
257-
- --entrypoints.web.address=:80
258-
- --entrypoints.websecure.address=:443
259-
# - --certificatesresolvers.letsencrypt.acme.tlschallenge=true
260-
# - --certificatesresolvers.letsencrypt.acme.email=local@foo.bar
261-
# - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
262-
- --log.level=DEBUG
263-
volumes:
264-
- /var/run/docker.sock:/var/run/docker.sock:ro
265-
- traefik-letsencrypt:/letsencrypt
266-
267174
volumes:
268175
clickhouse:
269176
postgres:
270177
redis:
271178
shared:
272179
minio:
273-
traefik-letsencrypt:
274180

275181
networks:
276-
traefik:
277-
name: traefik
278182
docker-proxy:
279183
name: docker-proxy
280184
supervisor:
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: trigger
2+
3+
services:
4+
supervisor:
5+
image: ghcr.io/triggerdotdev/supervisor:${TRIGGER_IMAGE_TAG:-main}
6+
restart: ${RESTART_POLICY:-unless-stopped}
7+
depends_on:
8+
- docker-proxy
9+
networks:
10+
- supervisor
11+
- docker-proxy
12+
volumes:
13+
- shared:/home/node/shared
14+
user: root
15+
command: sh -c "chown -R node:node /home/node/shared && exec /usr/bin/dumb-init -- pnpm run --filter supervisor start"
16+
environment:
17+
# This needs to match the token of the worker group you want to connect to
18+
# TRIGGER_WORKER_TOKEN: ${TRIGGER_WORKER_TOKEN}
19+
TRIGGER_WORKER_TOKEN: file:///home/node/shared/worker_token
20+
MANAGED_WORKER_SECRET: ${MANAGED_WORKER_SECRET}
21+
# Point this at the webapp in prod
22+
TRIGGER_API_URL: http://webapp:3000
23+
# Point this at the OTel collector or the webapp in prod
24+
OTEL_EXPORTER_OTLP_ENDPOINT: http://webapp:3000/otel
25+
TRIGGER_WORKLOAD_API_DOMAIN: supervisor
26+
TRIGGER_WORKLOAD_API_PORT_EXTERNAL: 8020
27+
# Optional settings
28+
DEBUG: 1
29+
ENFORCE_MACHINE_PRESETS: 1
30+
TRIGGER_DEQUEUE_INTERVAL_MS: 1000
31+
DOCKER_HOST: tcp://docker-proxy:2375
32+
DOCKER_RUNNER_NETWORKS: webapp,supervisor
33+
DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-localhost:5000}
34+
DOCKER_REGISTRY_USERNAME: ${DOCKER_REGISTRY_USERNAME:-}
35+
DOCKER_REGISTRY_PASSWORD: ${DOCKER_REGISTRY_PASSWORD:-}
36+
DOCKER_AUTOREMOVE_EXITED_CONTAINERS: 0
37+
healthcheck:
38+
test: ["CMD", "node", "-e", "http.get('http://localhost:8020/health', res => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"]
39+
interval: 30s
40+
timeout: 10s
41+
retries: 5
42+
start_period: 10s
43+
44+
docker-proxy:
45+
image: tecnativa/docker-socket-proxy:${DOCKER_PROXY_IMAGE_TAG:-latest}
46+
restart: ${RESTART_POLICY:-unless-stopped}
47+
volumes:
48+
- /var/run/docker.sock:/var/run/docker.sock:ro
49+
networks:
50+
- docker-proxy
51+
environment:
52+
- LOG_LEVEL=info
53+
- POST=1
54+
- CONTAINERS=1
55+
- IMAGES=1
56+
- INFO=1
57+
- NETWORKS=1
58+
healthcheck:
59+
test: ["CMD", "nc", "-z", "127.0.0.1", "2375"]
60+
interval: 30s
61+
timeout: 5s
62+
retries: 5
63+
start_period: 5s
64+
65+
volumes:
66+
shared:
67+
68+
networks:
69+
docker-proxy:
70+
name: docker-proxy
71+
supervisor:
72+
name: supervisor

0 commit comments

Comments
 (0)