-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
190 lines (168 loc) · 5.67 KB
/
docker-compose.yaml
File metadata and controls
190 lines (168 loc) · 5.67 KB
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# author : oussama.hafsi@pwc.com
version: "3.7"
services:
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-oussama.hafsi@pwc.com}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
PGADMIN_CONFIG_CONSOLE_LOG_LEVEL: 10
ports:
- "${PGADMIN_PORT:-5050}:80"
restart: unless-stopped
volumes:
- pgadmin:/var/lib/pgadmin
postgres:
image: postgres:14
container_name: postgres
user: postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
timeout: 5s
retries: 5
ports:
- "5432:5432"
volumes:
- keycloak-datastore:/var/lib/postresql/data
- ./init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh
environment:
POSTGRES_MULTIPLE_DATABASES: keycloakdb,apicuriodb,registrydb
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
keycloak:
image: jboss/keycloak:15.0.2
container_name: keycloak
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/auth/realms/master"]
interval: 10s
timeout: 5s
retries: 5
start_period: 18s
depends_on:
- postgres
ports:
- "8090:8080"
volumes:
- ./realms:/opt/jboss/keycloak/realm-config
environment:
KEYCLOAK_IMPORT: /opt/jboss/keycloak/realm-config/apicurio-realm.json,/opt/jboss/keycloak/realm-config/microcks-realm.json,/opt/jboss/keycloak/realm-config/registry-realm.json
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_PORT: 5432
DB_DATABASE: keycloakdb
DB_USER: keycloakdb
DB_PASSWORD: keycloakdb
KEYCLOAK_USER: ${KEYCLOAK_USER:-admin}
KEYCLOAK_PASSWORD: ${KEYCLOAK_PASSWORD:-admin}
apicurio-ws:
image: 'apicurio/apicurio-studio-ws:${APICURIO_WS_VERSION:-0.2.51.Final}'
container_name: apicurio-ws
depends_on: [postgres, keycloak]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/favicon.ico","--output","binary"]
interval: 10s
timeout: 5s
retries: 5
ports:
- '8092:8080'
environment:
JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true'
APICURIO_HUB_STORAGE_JDBC_TYPE: postgresql9
APICURIO_DB_DRIVER_NAME: postgresql
APICURIO_DB_CONNECTION_URL: jdbc:postgresql://postgres:5432/apicuriodb
APICURIO_DB_USER_NAME: apicuriodb
APICURIO_DB_PASSWORD: apicuriodb
APICURIO_DB_INITIALIZE: "true"
APICURIO_SHARE_FOR_EVERYONE: "false"
apicurio-api:
image: 'apicurio/apicurio-studio-api:${APICURIO_API_VERSION:-0.2.51.Final}'
container_name: apicurio-api
depends_on: [postgres, apicurio-ws,keycloak]
ports:
- '8091:8080'
environment:
JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true'
APICURIO_KC_AUTH_URL: http://$HOST:8090/auth
APICURIO_KC_CLIENT_ID: apicurio-api
APICURIO_KC_REALM: apicurio
APICURIO_HUB_STORAGE_JDBC_TYPE: postgresql9
APICURIO_DB_DRIVER_NAME: postgresql
APICURIO_DB_CONNECTION_URL: jdbc:postgresql://postgres:5432/apicuriodb
APICURIO_DB_USER_NAME: apicuriodb
APICURIO_DB_PASSWORD: apicuriodb
APICURIO_DB_INITIALIZE: "true"
APICURIO_MICROCKS_API_URL: http://$HOST:8900/api
APICURIO_MICROCKS_CLIENT_ID: microcks-serviceaccount
APICURIO_MICROCKS_CLIENT_SECRET: ab54d329-e435-41ae-a900-ec6b3fe15c54
apicurio-ui:
image: 'apicurio/apicurio-studio-ui:${APICURIO_UI_VERSION:-0.2.51.Final}'
container_name: apicurio-ui
depends_on: [postgres, apicurio-api, apicurio-ws, keycloak]
ports:
- '8093:8080'
environment:
JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true'
APICURIO_KC_CLIENT_ID: apicurio-studio
APICURIO_KC_AUTH_URL: http://$HOST:8090/auth
APICURIO_KC_REALM: apicurio
APICURIO_UI_HUB_API_URL: http://$HOST:8091
APICURIO_UI_EDITING_URL: ws://$HOST:8092
APICURIO_UI_FEATURE_MICROCKS: "true"
APICURIO_UI_FEATURE_SHARE_WITH_EVERYONE: "false"
APICURIO_UI_LOGOUT_REDIRECT_URI: /
mongo:
image: mongo:3.4.23
container_name: microcks-mongo
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo mongo:27017/test --quiet
interval: 10s
timeout: 10s
retries: 5
start_period: 15s
volumes:
- mongo_data:/data/db
postman:
image: microcks/microcks-postman-runtime:latest
container_name: microcks-postman-runtime
microcks:
depends_on: [mongo, postman, keycloak]
image: microcks/microcks:1.4.1-fix-2
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 10s
timeout: 10s
retries: 5
start_period: 40s
container_name: microcks
ports:
- "8900:8080"
environment:
SPRING_PROFILES_ACTIVE: prod
SPRING_DATA_MONGODB_URI: mongodb://mongo:27017
SPRING_DATA_MONGODB_DATABASE: microcks
POSTMAN_RUNNER_URL: http://postman:3000
TEST_CALLBACK_URL: http://$HOST:8090
KEYCLOAK_URL: http://$HOST:8090/auth
apicurio-registry:
depends_on: [postgres,keycloak]
image: apicurio/apicurio-registry-sql:2.1.2.Final
container_name: apicurio-registry
ports:
- 8094:8080
environment:
REGISTRY_DATASOURCE_URL: 'jdbc:postgresql://postgres:5432/registrydb'
REGISTRY_DATASOURCE_USERNAME: registrydb
REGISTRY_DATASOURCE_PASSWORD: registrydb
ROLE_BASED_AUTHZ_ENABLED: "true"
REGISTRY_AUTH_OWNER_ONLY_AUTHORIZATION: "false"
AUTH_ENABLED: 'true'
KEYCLOAK_URL: http://$HOST:8090/auth
KEYCLOAK_REALM: registry
KEYCLOAK_API_CLIENT_ID: registry-api
KEYCLOAK_UI_CLIENT_ID: apicurio-registry
volumes:
keycloak-datastore:
pgadmin:
mongo_data: