Repository navigation
Expand file tree
/
Copy pathdocker-compose.yaml.example
More file actions
123 lines (114 loc) · 3.9 KB
/
Copy pathdocker-compose.yaml.example
File metadata and controls
123 lines (114 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Site-local Compose file (bind volumes + optional knobs).
#
# Operators: cp this file to docker-compose.yaml (gitignored).
# Any operator-facing change must update this .example in the same task —
# see hpcperfstats/cursor-rules/docker-compose-settings-example-sync.mdc.
#
# Entry point: include docker-compose.defaults.yaml, then merge site binds and
# service overrides here (this file wins over defaults for overlapping keys).
# podman-compose / docker compose discover docker-compose.yaml by default.
# TLS PEMs: proxy_ssl_source volume (flat PEM dir default); entrypoint copies
# real files into /etc/ssl/hpcperfstats before nginx starts.
#
# Project name must live on this file (first compose file podman-compose loads).
# If omitted, podman-compose uses the checkout directory basename for container
# names ({dir}_proxy_1), not name: in docker-compose.defaults.yaml — logs/exec
# then miss hpcperfstats_* containers when the cwd is not literally hpcperfstats.
name: hpcperfstats
include:
- docker-compose.defaults.yaml
volumes:
hpcperfstatsdata:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_data/site_data
o: bind
staticfiles_data:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_site/staticfiles
o: bind
media_data:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_site/media
o: bind
postgres_data:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_db/pg15
o: bind
# Homegrown PG18 dual-run volume (profile pg18-migrate). Create + chown before
# starting db_pg18 (Alpine postgres is uid/gid 70):
# mkdir -p /data/hpcperfstats_db/pg18 && chown -R 70:70 /data/hpcperfstats_db/pg18
# Bind replaces image ownership; empty root:root → Permission denied on mkdir 18/.
# See docs/OPERATOR_PG18_MIGRATION.md. After cutover, operators may re-point
# the primary bind and retire pg15.
postgres_data_pg18:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_db/pg18
o: bind
rabbitmq_messages:
driver: local
driver_opts:
type: none
device: /data/hpcperfstats_data/rabbitmq
o: bind
ssh_keys:
driver: local
driver_opts:
type: none
# Host directory with pipeline SSH keys (edit for your site).
device: /keys_directory/.ssh
o: bind
proxy_ssl_source:
driver: local
driver_opts:
type: none
# Host directory with fullchain.pem + privkey.pem at this path (edit for your site).
# See below for extra configuration for symlinks outside of this directory (Lets Encrypt)
device: /opt/certs
o: bind
# Site service overrides (single `services:` map — YAML must not repeat `services:` at
# top level; a second key replaces the first). Stack bodies live in
# docker-compose.defaults.yaml; uncomment optional keys below as needed.
#
# Production defaults remain 80/443/514/5672. Dev/unprivileged ports: also set
# HPCPERFSTATS_HTTP_PORT=8080, HPCPERFSTATS_HTTPS_PORT=8443,
# HPCPERFSTATS_SYSLOG_PORT=1514, HPCPERFSTATS_AMQP_PORT=5673 on the compose command env.
services:
web:
image: hpcperfstats
# Dev/debug — publish gunicorn on the host:
# ports:
# - "${HPCPERFSTATS_WEB_PORT:-8000}:8000"
pipeline:
image: hpcperfstats
# Pipeline debug (optional):
# cap_add:
# - SYS_PTRACE
# mem_limit: 128g
# memswap_limit: 128g
proxy:
image: hpcperfstats-proxy
# Let's Encrypt: set proxy_ssl_source.device to /etc/letsencrypt, then uncomment:
# environment:
# - HPCPERFSTATS_SSL_CERTS_REL=live/your.hostname.example
db_pg18:
image: hpcperfstats-db
# db (defaults): dev/debug host port — add under db: (keep or drop `{}`):
# db:
# ports:
# - "5432:5432"
db: {}
# rabbitmq (defaults): dev/debug management UI:
# rabbitmq:
# ports:
# - "15672:15672"
rabbitmq: {}