-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
123 lines (114 loc) · 2.86 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
version: '3'
services:
neo4j:
image: neo4j:latest
ports:
- 7474:7474
- 7687:7687
environment:
- NEO4J_AUTH=neo4j/letmein
- NEO4J_dbms_security_procedures_unrestricted=apoc.*
- NEO4J_apoc_import_file_enabled=true
- NEO4J_apoc_export_file_enabled=true
- NEO4J_dbms_shell_enabled=true
- NEO4JLABS_PLUGINS=["apoc", "graph-data-science"]
volumes:
- ../imic_data:/var/lib/neo4j/import
api:
image: node:16
working_dir: /usr/src/service
command: >
sh -c "node api/src/proxy_pass minio 9000 &
npm run start:api"
ports:
- 4001:4001
- 9231:9231
environment:
# - NEO4J_URI=bolt://neo4j:7687
- NEO4J_URI=${NEO4J_URI}
- NEO4J_USER=${NEO4J_USER}
- NEO4J_PASSWORD=${NEO4J_PASSWORD}
- GRAPHQL_LISTEN_PORT=${GRAPHQL_SERVER_PORT}
- GRAPHQL_URI=${GRAPHQL_URI}
links:
- neo4j
depends_on:
- neo4j
- minio
- keycloak
volumes:
- .:/usr/src/service
- ../imic_data:/imic_data
ui:
image: node:16
working_dir: /usr/src/service
command: >
sh -c "npm run start:ui"
ports:
- 3001:3001
environment:
- CI=true
- REACT_APP_GRAPHQL_URI=${GRAPHQL_SERVER_PATH}
- PROXY=${GRAPHQL_URI}
links:
- api
depends_on:
- api
- minio
- keycloak
volumes:
- .:/usr/src/service
minio:
image: minio/minio
ports:
- ${MINIO_API_PORT}:${MINIO_API_PORT}
- ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}
volumes:
- imic_minio_volume:/data
- /etc/localtime:/etc/localtime:ro
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
command: server /data --console-address ":${MINIO_CONSOLE_PORT}"
keycloak:
image: jboss/keycloak:11.0.1
container_name: keycloak
expose:
- 8443
ports:
- "8085:8443"
- "8080:8080"
volumes:
- ./keycloak/realm-export.json:/opt/jboss/keycloak/realm-export.json
- imic_keycloak_volume:/opt/jboss/keycloak/standalone/data
- ./nginx/certs/bundle.crt:/etc/x509/https/tls.crt
- ./nginx/certs/bundle.key:/etc/x509/https/tls.key
environment:
- KEYCLOAK_USER=${KEYCLOAK_USER}
- KEYCLOAK_PASSWORD=${KEYCLOAK_PASSWORD}
- KEYCLOAK_IMPORT=/opt/jboss/keycloak/realm-export.json
- DB_VENDOR=h2
nginx:
restart: ${RESTART}
build:
context: .
environment:
- NODE_ENV=production
ports:
- "80:80"
- "443:443"
depends_on:
- api
- minio
- neo4j
- keycloak
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/certs:/etc/nginx/certs
# entrypoint: >
# sh -c "while true; do sleep 1000; done"
volumes:
imic_minio_volume:
external: true
imic_keycloak_volume:
external: true