-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
97 lines (93 loc) · 4.35 KB
/
docker-compose.yml
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
---
version: "3.7"
services:
traefik:
image: traefik:v3.0@sha256:8852303b7235802671d0c0cc99840abedd99e31a125ccb9450094b62844eb32d
command:
- "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}"
# letsencrypt configuration
- "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:[email protected]}"
- "--certificatesResolvers.http.acme.storage=/certs/acme.json"
- "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http"
# enable dashboard
- "--api.dashboard=true"
# define entrypoints
- "--entryPoints.http.address=:80"
- "--entryPoints.http.http.redirections.entryPoint.to=https"
- "--entryPoints.http.http.redirections.entryPoint.scheme=https"
- "--entryPoints.https.address=:443"
# docker provider (get configuration from container labels)
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.exposedByDefault=false"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "certs:/certs"
labels:
- "traefik.enable=${TRAEFIK_DASHBOARD:-false}"
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$apr1$4vqie50r$YQAmQdtmz5n9rEALhxJ4l.}" # defaults to admin:admin
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.owncloud.test}`)"
- "traefik.http.routers.traefik.middlewares=traefik-auth"
- "traefik.http.routers.traefik.tls.certresolver=http"
- "traefik.http.routers.traefik.service=api@internal"
logging:
driver: "local"
restart: always
influxdb:
image: influxdb:2.7@sha256:3f2c6e38e0feaed1ea244928c2c9a21c361e2d0b8cfb8d4d7ff4036391b29a0c
volumes:
- ./config/influxdb/provisioning/users.sh:/docker-entrypoint-initdb.d/users.sh
- /mnt/k6-benchmark-visualization/influxdb:/var/lib/influxdb2
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_ADMIN_USERNAME:-admin}
- DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_ADMIN_PASSWORD:-superlongadminpassword}
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_ADMIN_TOKEN:-superlongadmintoken}
- DOCKER_INFLUXDB_INIT_ORG=${INFLUXDB_ORG:-k6-benchmark}
- DOCKER_INFLUXDB_INIT_BUCKET=${INFLUXDB_BUCKET:-k6-benchmark}
#- DOCKER_INFLUXDB_INIT_RETENTION=
labels:
- "traefik.enable=true"
- "traefik.http.routers.influxdb.entrypoints=https"
- "traefik.http.routers.influxdb.rule=Host(`${INFLUXDB_DOMAIN:-influxdb.owncloud.test}`)"
- "traefik.http.routers.influxdb.tls.certresolver=http"
- "traefik.http.routers.influxdb.service=influxdb"
- "traefik.http.services.influxdb.loadbalancer.server.port=8086"
logging:
driver: "local"
restart: always
grafana:
image: grafana/grafana:10.1.0@sha256:047c1c5aa6fef257b6c2516f95c8fcd9f28707c201c6413dd78328b6cbedff6f
volumes:
- grafana:/var/lib/grafana
- ./config/grafana/dashboards/:/etc/grafana/dashboards/
- ./config/grafana/provisioning/:/etc/grafana/provisioning/
environment:
- GF_SERVER_DOMAIN=${GRAFANA_DOMAIN:-grafana.owncloud.test}
- GF_SERVER_ROOT_URL=https://${GRAFANA_DOMAIN:-grafana.owncloud.test}
- GF_AUTH_BASIC_ENABLED=false
- GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_INSTALL_PLUGINS=grafana-piechart-panel,grafana-github-datasource,grafana-clock-panel,natel-influx-admin-panel
- GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/dashboards/home.json
# influx data source
- GRAFANA_INFLUXDB_ORG=${INFLUXDB_ORG:-k6-benchmark}
- GRAFANA_INFLUXDB_BUCKET=${INFLUXDB_BUCKET:-k6-benchmark}
- GRAFANA_INFLUXDB_TOKEN=${GRAFANA_INFLUXDB_TOKEN:-superlongadmintoken}
labels:
- "traefik.enable=true"
- "traefik.http.routers.grafana.entrypoints=https"
- "traefik.http.routers.grafana.rule=Host(`${GRAFANA_DOMAIN:-grafana.owncloud.test}`)"
- "traefik.http.routers.grafana.tls.certresolver=http"
- "traefik.http.routers.grafana.service=grafana"
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
logging:
driver: "local"
restart: always
volumes:
certs:
grafana: