-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
131 lines (130 loc) · 4.2 KB
/
docker-compose.yml
File metadata and controls
131 lines (130 loc) · 4.2 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
---
version: "3.9"
networks:
xapitools0: {}
selenium0: {}
frontend0:
name: frontend0
external: true
volumes:
xapitools_simulations: {}
xapitools_mongo: {}
xapitools_mariadb: {}
services:
mariadb:
image: library/mariadb:10.7
restart: always
networks:
- xapitools0
volumes:
- xapitools_mariadb:/var/lib/mysql
environment:
MARIADB_RANDOM_ROOT_PASSWORD: 1
MARIADB_DATABASE: xapitools
MARIADB_USER: xapi
MARIADB_PASSWORD: toolkit
mongodb:
image: library/mongo:4.4.12
restart: always
networks:
- xapitools0
volumes:
- ./init/mongodb:/docker-entrypoint-initdb.d:ro
- xapitools_mongo:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: xapitools
MONGO_INITDB_USERNAME: xapi
MONGO_INITDB_PASSWORD: toolkit
datasim:
# Image is built by CI of DATASIM "mirror"
image: nexus.galaxion.de:5050/yetanalytics/datasim:latest
entrypoint: bin/server.sh # The default is to run DATASIM in CLI mode. We probably want to override that.
restart: always
networks:
- xapitools0
environment:
credentials: foo:bar # sic!
dave:
# Image is built by CI of DAVE "mirror"
image: nexus.galaxion.de:5050/yetanalytics/dave:latest
# These credentials are read from command by webserver
command: --set-basic-auth dave:password
restart: always
networks:
- xapitools0
- selenium0
selenium-node-docker:
image: selenium/node-docker:4.1.2-20220217
restart: always
volumes:
- ./init/selenium/config.toml:/opt/bin/config.toml:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
- selenium0
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
selenium-hub:
image: selenium/hub:4.1.2-20220217
container_name: selenium-hub
restart: always
networks:
- xapitools0
- selenium0
- frontend0
labels:
traefik.enable: "true"
traefik.providers.docker.network: frontend0
traefik.http.routers.selenium-hub.rule: Host(`${SELENIUM_HOSTNAME}`)
traefik.http.routers.selenium-hub.entrypoints: traefik-dash # This is for internal purposes only.
traefik.http.routers.selenium-hub.tls: "true"
traefik.http.routers.selenium-hub.service: selenium-wui
traefik.http.services.selenium-wui.loadbalancer.server.port: "4444"
permission_control:
image: busybox
command: /bin/sh -c 'touch /data/.initialized && chown -R 1000:1000 /data'
volumes:
- xapitools_simulations:/data
xapitools:
depends_on:
- mariadb
- datasim
- dave
- selenium-hub
- permission_control
restart: on-failure
# Image is built by CI of this project.
image: nexus.galaxion.de:5050/de.tudresden.inf.verdatas/xapitools:latest
networks:
- xapitools0
- selenium0
- frontend0
expose:
- 8080
volumes:
- xapitools_simulations:/data
environment:
XAPITOOLS_SEC_USERNAME: ${WEB_AUTH_USER}
XAPITOOLS_SEC_PASSWORD: ${WEB_AUTH_PASSWORD}
XAPITOOLS_SIM_BACKEND_BASE_URL: http://datasim:9090 # This is the Docker-relative base path.
XAPITOOLS_SIM_BACKEND_USERNAME: foo
XAPITOOLS_SIM_BACKEND_PASSWORD: bar
XAPITOOLS_SIM_STORAGE_DIR: /data # This path also is Docker-relative. See volumes section.
XAPITOOLS_VIZ_SERVER_BASE_URL: http://dave:password@dave:8043/
XAPITOOLS_VIZ_SELENIUM_HUB_URL: http://selenium-hub:4444/wd/hub
XAPITOOLS_DB_CONNECTION_STRING: mariadb://mariadb:3306/xapitools
XAPITOOLS_DB_CONNECTION_USER: xapi
XAPITOOLS_DB_CONNECTION_PASSWORD: toolkit
XAPITOOLS_MONGO_CONNECTION_STRING: mongodb://xapi:toolkit@mongodb:27017/xapitools
TZ: Europe/Berlin
labels:
traefik.enable: "true"
traefik.providers.docker.network: frontend0
traefik.http.routers.xapitools.rule: Host(`${WEB_HOSTNAME}`)
traefik.http.routers.xapitools.entrypoints: websecure
traefik.http.routers.xapitools.tls: "true"