blob: 4b54949bb7da0031f3e9dd413f7aca479fec22c6 [file]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: devlake-postgresql
services:
postgres:
image: postgres:18.6
volumes:
- postgres-storage:/var/lib/postgresql
restart: always
ports:
- 5432:5432
environment:
POSTGRES_DB: lake
POSTGRES_USER: merico
POSTGRES_PASSWORD: merico
TZ: UTC
grafana:
image: ${DEVLAKE_IMAGE_REGISTRY:-devlake.docker.scarf.sh}/apache/devlake-dashboard:latest
build:
context: grafana/
ports:
- ${GRAFANA_HOST_PORT:-3002}:3000
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/dashboards/postgresql:/etc/grafana/dashboards:ro
environment:
GF_SERVER_ROOT_URL: "${GRAFANA_ROOT_URL:-http://localhost:4000/grafana}"
GF_USERS_DEFAULT_THEME: "light"
DATABASE_TYPE: "${GRAFANA_DATABASE_TYPE:-postgresql}"
DATABASE_HOST: "${GRAFANA_DATABASE_HOST:-postgres}"
DATABASE_PORT: "${GRAFANA_DATABASE_PORT:-5432}"
DATABASE_NAME: "${GRAFANA_DATABASE_NAME:-lake}"
DATABASE_USER: "${GRAFANA_DATABASE_USER:-merico}"
DATABASE_PASSWORD: "${GRAFANA_DATABASE_PASSWORD:-merico}"
DATABASE_SSL_MODE: "${GRAFANA_DATABASE_SSL_MODE:-disable}"
# Legacy vars for older dashboard images; kept in sync with generic vars above.
POSTGRES_URL: "${GRAFANA_DATABASE_HOST:-postgres}:${GRAFANA_DATABASE_PORT:-5432}"
POSTGRES_DATABASE: "${GRAFANA_DATABASE_NAME:-lake}"
POSTGRES_USER: "${GRAFANA_DATABASE_USER:-merico}"
POSTGRES_PASSWORD: "${GRAFANA_DATABASE_PASSWORD:-merico}"
TZ: UTC
restart: always
depends_on:
- postgres
devlake:
image: devlake-local:latest
build:
context: backend
dockerfile: Dockerfile.local
args:
HTTPS_PROXY: "${HTTPS_PROXY}"
GOPROXY: "${GOPROXY}"
ports:
- 8084:8080
restart: always
volumes:
- devlake-log:/app/logs
env_file:
- ./.env
environment:
DB_URL: postgres://merico:merico@postgres:5432/lake?sslmode=disable
E2E_DB_URL: postgres://merico:merico@postgres:5432/lake_test?sslmode=disable
REMOTE_PLUGIN_DIR: ""
FORCE_MIGRATION: "true"
LOGGING_DIR: /app/logs
TZ: UTC
depends_on:
- postgres
config-ui:
image: ${DEVLAKE_IMAGE_REGISTRY:-devlake.docker.scarf.sh}/apache/devlake-config-ui:latest
build:
context: "config-ui"
ports:
- 4000:4000
env_file:
- ./.env
environment:
DEVLAKE_ENDPOINT: devlake:8080
GRAFANA_ENDPOINT: grafana:3000
TZ: UTC
depends_on:
- devlake
authproxy:
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5-amd64
network_mode: "host"
ports:
- 4180:4180
env_file:
- ./.env
volumes:
postgres-storage:
grafana-storage:
devlake-log: