@@ -8,16 +8,20 @@ services:
88 - public
99 - monitored
1010 environment:
11+ # Metabase logsd doc: https://www.metabase.com/docs/v0.54/configuring-metabase/log-configuration
12+ - JAVA_OPTS=-Dlog4j.configurationFile=file:/tmp/my_log4j2.xml
1113 # https://www.metabase.com/docs/v0.54/installation-and-operation/configuring-application-database
1214 - MB_DB_TYPE=postgres
1315 - MB_DB_DBNAME=metabase
1416 - MB_DB_HOST=${POSTGRES_HOST}
1517 - MB_DB_PORT=${POSTGRES_PORT}
16- - MB_DB_USER=${POSTGRES_USER }
17- - MB_DB_PASS=${POSTGRES_PASSWORD }
18+ - MB_DB_USER=${METABASE_POSTGRES_USER }
19+ - MB_DB_PASS=${METABASE_POSTGRES_PASSWORD }
1820 # https://www.metabase.com/docs/v0.54/installation-and-operation/running-metabase-on-docker#setting-the-java-timezone
1921 - JAVA_TIMEZONE=UTC
2022 deploy:
23+ # we do not need high availability. This service is not critical
24+ replicas: 1
2125 update_config:
2226 parallelism: 1
2327 order: start-first
@@ -27,6 +31,7 @@ services:
2731 constraints:
2832 - node.labels.ops==true
2933 labels:
34+ # TODO: add prometheus metrics
3035 - traefik.enable=true
3136 - traefik.docker.network=${PUBLIC_NETWORK}
3237 # router
@@ -37,18 +42,31 @@ services:
3742 - traefik.http.routers.metabase.middlewares=ops_whitelist_ips@swarm, ops_gzip@swarm, ops_auth@swarm, metabase_stripprefixregex
3843 # service
3944 - traefik.http.services.metabase.loadbalancer.server.port=3000
40- # resources:
41- # limits:
42- # memory: 512M
43- # cpus: "1.0"
44- # reservations:
45- # memory: 128M
46- # cpus: "0.2"
45+ - traefik.http.services.metabase.loadbalancer.healthcheck.path=/api/health
46+ - traefik.http.services.metabase.loadbalancer.healthcheck.interval=5s
47+ - traefik.http.services.metabase.loadbalancer.healthcheck.timeout=1s
48+
49+ # https://www.metabase.com/learn/metabase-basics/administration/administration-and-operation/metabase-in-production
50+ resources:
51+ limits:
52+ memory: 2G
53+ cpus: "2.0"
54+ reservations:
55+ memory: 1G
56+ cpus: "1.0"
4757 healthcheck:
4858 test: curl --fail -I http://localhost:3000/api/health || exit 1
4959 interval: 15s
5060 timeout: 5s
5161 retries: 5
62+ configs:
63+ - source: logging_configuration
64+ target: /tmp/my_log4j2.xml
65+
66+ configs:
67+ logging_configuration:
68+ file: ./logging_configuration.xml
69+ name: {{ STACK_NAME }}_logging_configuration_{{ "./logging_configuration.xml" | sha256file | substring(0,10) }}
5270
5371networks:
5472 public:
0 commit comments