deploy/docker-compose.yaml
version: "3.3"
services:
postgres:
image: postgres:15.1-alpine
container_name: metabase-db
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: metabase
ports:
- '127.0.0.1:5432:5432'
volumes:
- metabase-db:/var/lib/postgresql/data
metabase:
container_name: metabase
restart: always
image: metabase/metabase:v0.46.0
ports:
- 127.0.0.1:3000:3000 # recommended for debuging, etc.
depends_on:
- postgres
environment:
MB_DB_TYPE: postgres
MB_DB_HOST: postgres
MB_DB_PORT: 5432
MB_DB_USER: postgres
MB_DB_PASS: postgres
MB_DB_DBNAME: metabase
## Any other metabase options should go here
metabase-search:
container_name: metabase-search
restart: always
image: ghcr.io/basalam/metabase-search:5498835
ports:
- 127.0.0.1:3001:80 # recommended for debuging, etc.
depends_on:
- postgres
environment:
TZ: Asia/Tehran
WEB_CONCURRENCY: 2 # It will be equal to number of cores by defualt
MB__BASE_URL: "https://metabase.local"
MB__MAX_CONNECTIONS: "25"
DB__HOST: "postgres"
DB__PORT: "5432"
DB__USER: "postgres"
DB__PASSWORD: "postgres"
DB__DBNAME: "metabase"
DB__MIN_CONNECTIONS: "1"
DB__MAX_CONNECTIONS: "25"
CACHE__TTL: "300"
# Here, add other ENVs (depends on your needs)
nginx:
image: nginx:stable-alpine
container_name: nginx
ports:
- 80:80
- 443:443
depends_on:
- metabase
- metabase-search
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- /var/log/nginx/:/var/log/nginx/
- ./my-cert.pem:/etc/ssl/my-cert.pem
- ./my-cert.key:/etc/ssl/my-cert.key
- ./dhparams.pem:/etc/nginx/dhparams.pem
volumes:
metabase-db:
name: metabase-db