-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
110 lines (102 loc) · 3.54 KB
/
docker-compose.yaml
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
108
109
110
---
version: '3.9'
services:
rabbitmq:
image: wayofdev/rabbitmq:management-alpine-latest
container_name: ${COMPOSE_PROJECT_NAME_SAFE}_rabbitmq
restart: on-failure
networks:
default:
aliases:
- rabbitmq.${COMPOSE_PROJECT_NAME}.alias
shared:
aliases:
- rabbitmq.${COMPOSE_PROJECT_NAME}.alias
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-admin}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-admin}
volumes:
- "rabbitmq_data:/var/lib/rabbitmq"
labels:
- traefik.enable=true
- traefik.http.routers.rabbitmq-${COMPOSE_PROJECT_NAME_SLUG}.rule=Host(`rabbitmq.${COMPOSE_PROJECT_NAME}.docker`)
- traefik.http.routers.rabbitmq-${COMPOSE_PROJECT_NAME_SLUG}.entrypoints=websecure
- traefik.http.routers.rabbitmq-${COMPOSE_PROJECT_NAME_SLUG}.tls=true
- traefik.http.services.rabbitmq-${COMPOSE_PROJECT_NAME_SLUG}.loadbalancer.server.port=15672
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 30s
timeout: 30s
retries: 3
mailhog:
image: jcalonso/mailhog:latest
container_name: ${COMPOSE_PROJECT_NAME_SAFE}_mailhog
restart: on-failure
ports:
- '${FORWARD_MAILHOG_PORT:-1025}:1025'
networks:
default:
shared:
aliases:
- mailhog.${COMPOSE_PROJECT_NAME}.alias
labels:
- traefik.enable=true
- traefik.http.routers.mail-${COMPOSE_PROJECT_NAME_SLUG}.rule=Host(`mail.${COMPOSE_PROJECT_NAME}.docker`)
- traefik.http.routers.mail-${COMPOSE_PROJECT_NAME_SLUG}.entrypoints=websecure
- traefik.http.routers.mail-${COMPOSE_PROJECT_NAME_SLUG}.tls=true
- traefik.http.services.mail-${COMPOSE_PROJECT_NAME_SLUG}.loadbalancer.server.port=8025
keycloak-database:
image: postgres:16-alpine
container_name: ${COMPOSE_PROJECT_NAME_SAFE}_keycloak_db
restart: on-failure
volumes:
- keycloak_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${KC_DB_URL_DATABASE}
POSTGRES_USER: ${KC_DB_USERNAME}
POSTGRES_PASSWORD: ${KC_DB_PASSWORD}
ports:
- "5432"
keycloak:
image: quay.io/keycloak/keycloak:24.0.3
container_name: ${COMPOSE_PROJECT_NAME_SAFE}_keycloak
restart: on-failure
volumes:
- ./keycloak/themes/keywind.jar:/opt/keycloak/providers/keywind.jar
- ./keycloak/certs/cert.pem:/opt/keycloak/conf/cert.pem
- ./keycloak/certs/key.pem:/opt/keycloak/conf/key.pem
- ./keycloak/setup:/tmp/setup:ro
networks:
default:
aliases:
- keycloak.${COMPOSE_PROJECT_NAME}.alias
shared:
aliases:
- keycloak.${COMPOSE_PROJECT_NAME}.alias
depends_on:
- keycloak-database
env_file:
- .env
environment:
KC_FEATURES_DISABLED: "jdbc-h2,jdbc-mariadb,jdbc-mssql,jdbc-mysql,jdbc-oracle"
ports:
- "8765:8080"
links:
- keycloak-database
labels:
- traefik.enable=true
- traefik.http.routers.keycloak-${COMPOSE_PROJECT_NAME_SLUG}.rule=Host(`auth.${COMPOSE_PROJECT_NAME}.docker`)
- traefik.http.routers.keycloak-${COMPOSE_PROJECT_NAME_SLUG}.entrypoints=websecure
- traefik.http.routers.keycloak-${COMPOSE_PROJECT_NAME_SLUG}.tls=true
- traefik.http.services.keycloak-${COMPOSE_PROJECT_NAME_SLUG}.loadbalancer.server.port=${KC_HTTP_PORT}
entrypoint: ["/opt/keycloak/bin/kc.sh", "start-dev"]
volumes:
rabbitmq_data:
keycloak_data:
networks:
default:
name: project.${COMPOSE_PROJECT_NAME_SAFE}
shared:
external: true
name: ${SHARED_SERVICES_NETWORK}
...