-
Notifications
You must be signed in to change notification settings - Fork 0
/
compose.yaml
123 lines (117 loc) · 3.66 KB
/
compose.yaml
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
name: monitoring
services:
odoo:
build: ./odoo
environment:
OTEL_EXPORTER_OTLP_ENDPOINT: "http://alloy:4317"
ODOO_ENVIRONMENT: "development"
ODOO_INSTRUMENT_LOGS: "1"
ODOO_INSTRUMENT_METRICS: "1"
ODOO_INSTRUMENT_LIBRARIES: ""
labels:
traefik.enable: true
traefik.http.services.odoo.loadbalancer.server.port: 8069
traefik.http.services.longpolling.loadbalancer.server.port: 8072
traefik.http.routers.odoo.rule: Host(`odoo.localhost`)
traefik.http.routers.odoo.service: odoo
traefik.http.routers.longpolling.rule: Host(`odoo.localhost`) && PathPrefix(`/websocket`)
traefik.http.routers.longpolling.service: longpolling
volumes:
- odoo-data:/var/lib/odoo
- ./odoo/config:/etc/odoo
- ./odoo/addons:/mnt/extra-addons
hostname: localhost
depends_on:
- postgres
- alloy
- traefik
restart: unless-stopped
postgres:
image: postgres:15
environment:
POSTGRES_DB: "postgres"
POSTGRES_PASSWORD: "odoo"
POSTGRES_USER: "odoo"
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
# https://grafana.com/docs/alloy/latest/set-up/install/docker/
alloy:
image: grafana/alloy:latest
command:
- "run"
- "--storage.path=/var/lib/alloy/data"
- "--server.http.listen-addr=0.0.0.0:12345"
- "--stability.level=experimental"
- "/etc/alloy/config.alloy"
environment:
POSTGRES_URL: "postgres://odoo:odoo@postgres:5432/odoo?sslmode=disable"
PROMETHEUS_URL: "${PROMETHEUS_URL:?}"
PROMETHEUS_USERNAME: "${PROMETHEUS_USERNAME:?}"
PROMETHEUS_PASSWORD: "${PROMETHEUS_PASSWORD:?}"
OTEL_URL: "${OTEL_URL:?}"
OTEL_USERNAME: "${OTEL_USERNAME:?}"
OTEL_PASSWORD: "${OTEL_PASSWORD:?}"
labels:
traefik.enable: true
traefik.http.services.alloy.loadbalancer.server.port: 12345
traefik.http.routers.alloy.rule: Host(`alloy.localhost`)
traefik.http.routers.alloy.service: alloy
volumes:
- alloy-data:/var/lib/alloy/data
- ./grafana/alloy/applications.alloy:/etc/alloy/config.alloy
hostname: localhost
depends_on:
- postgres
- traefik
restart: unless-stopped
#https://docs.locust.io/en/stable/running-in-docker.html
locust:
image: locustio/locust:latest
labels:
traefik.enable: true
traefik.http.services.locust.loadbalancer.server.port: 8089
traefik.http.routers.locust.rule: Host(`locust.localhost`)
traefik.http.routers.locust.service: locust
volumes:
- ./locust/entrypoint.py:/entrypoint.py
entrypoint:
- "/entrypoint.py"
depends_on:
- odoo
- traefik
restart: unless-stopped
# https://doc.traefik.io/traefik/getting-started/quick-start/
traefik:
image: traefik:v3.1.3
command:
- "--providers.docker=true"
- "--providers.docker.network=odoo_default"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entryPoints.metrics.address=:8080"
- "--metrics.prometheus=true"
- "--metrics.prometheus.entryPoint=metrics"
- "--metrics.prometheus.addrouterslabels=true"
- "--log.level=INFO"
- "--api.dashboard=true"
labels:
traefik.enable: true
traefik.http.routers.dashboard.rule: Host(`traefik.localhost`)
traefik.http.routers.dashboard.service: api@internal
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
default:
public:
ports:
- "127.0.0.1:80:80"
restart: unless-stopped
volumes:
odoo-data:
postgres-data:
alloy-data:
networks:
default:
public:
internal: false