-
Notifications
You must be signed in to change notification settings - Fork 3
/
docker-compose.yml
107 lines (100 loc) · 3.52 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
98
99
100
101
102
103
104
105
106
107
name: tailormap
volumes:
db:
solr-data:
services:
tailormap:
container_name: ${COMPOSE_PROJECT_NAME}-server
image: ${TAILORMAP_IMAGE:-ghcr.io/tailormap/tailormap}:${VERSION:-snapshot}
# Building is optional, only when adding extra Angular libraries with additional components
build:
# This GitHub repository contains an empty Angular project with the NPM packages from tailormap as
# dependencies
context: https://github.com/tailormap/tailormap-starter.git
args:
API_VERSION: ${VERSION}
ADD_NG_LIBRARIES: ${ADD_NG_LIBRARIES:-}
APPEND_NPMRC: ${APPEND_NPMRC:-}
networks:
- default
extra_hosts:
- host.docker.internal:host-gateway
expose:
- 8080
environment:
- "HOST=${HOST:-localhost}"
- "SPRING_DATASOURCE_URL=jdbc:postgresql://db/tailormap"
- "SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-default}"
- "ADMIN_HASHED_PASSWORD=${ADMIN_HASHED_PASSWORD:-}"
# The container binds to localhost for running the tailormap container by itself in host network mode
# Change to 0.0.0.0, so it is reachable by a reverse proxy such as Traefik
- "SERVER_ADDRESS=0.0.0.0"
# It's possible to configure a OIDC single sign-on configuration from the environment in addition to
# configuring SSO configurations via the admin interface. If you deploy multiple instances with the
# same OIDC configuration you can use the same environment file, so you don't have to configure it
# manually multiple times.
- "OIDC_NAME=${OIDC_NAME:-}"
- "OIDC_ISSUER_URI=${OIDC_ISSUER_URI:-}"
- "OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-}"
- "OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET:-}"
- "OIDC_CLIENT_USER_NAME_ATTRIBUTE=${OIDC_CLIENT_USER_NAME_ATTRIBUTE:-name}"
- "OIDC_SHOW_FOR_VIEWER=${OIDC_SHOW_FOR_VIEWER:-false}"
- "SENTRY_DSN=${API_SENTRY_DSN:-}"
- "SOURCE_MAP_AUTH=${SOURCE_MAP_AUTH:-}"
- "VIEWER_SENTRY_DSN=${VIEWER_SENTRY_DSN:-}"
# Session timeout can be changed. Default is 30 minutes. You can use values like "60m" or "4h".
- "SERVER_SERVLET_SESSION_TIMEOUT=${SERVER_SERVLET_SESSION_TIMEOUT:-}"
restart: unless-stopped
depends_on:
- db
db:
container_name: ${COMPOSE_PROJECT_NAME}-db
image: postgres:15.8-alpine3.20
environment:
POSTGRES_PASSWORD: ${TAILORMAP_DB_PASSWORD:-tailormap}
POSTGRES_USER: tailormap
POSTGRES_DB: tailormap
PGUSER: postgres # for pg_isready
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: 'pg_isready -U tailormap'
restart: unless-stopped
solr:
container_name: ${COMPOSE_PROJECT_NAME}-solr
image: ghcr.io/tailormap/solr:9.7.0
profiles:
- solr
environment:
TZ: Europe/Amsterdam
volumes:
- solr-data:/var/solr
depends_on:
- db
labels:
traefik.enable: false
restart: unless-stopped
command:
- solr-precreate
- tailormap
healthcheck:
test: 'curl -s http://localhost:8983/solr/tailormap/admin/ping | grep -q "OK" || exit 1'
start_period: 60s
interval: 15s
timeout: 5s
retries: 3
solr-metrics:
container_name: ${COMPOSE_PROJECT_NAME}-solr-status
depends_on:
- solr
image: ghcr.io/tailormap/solr:9.7.0
profiles:
- solr
environment:
TZ: Europe/Amsterdam
PORT: 9854
SCRAPE_INTERVAL: 15
SOLR_URL: http://solr:8983/solr/
command:
# this script should be in the path for the current (solr) user
- solr-exporter