-
Notifications
You must be signed in to change notification settings - Fork 11
/
docker-compose.yml
135 lines (118 loc) · 2.8 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
124
125
126
127
128
129
130
131
132
133
134
135
version: '2'
networks:
apix:
driver: bridge
volumes:
fcrepo-data: {}
fuseki-data: {}
services:
# Base images
base-java:
container_name: base-java
build: docker/base/java
image: apix-poc/java
command: /bin/true
base-karaf:
container_name: base-karaf
build: docker/base/karaf
image: apix-poc/karaf
depends_on:
- base-java
command: /bin/true
# Services
fcrepo:
container_name: fcrepo
build: docker/services/fcrepo
image: apix-poc/fcrepo
depends_on:
- base-java
volumes:
- fcrepo-data:/shared
networks:
apix:
aliases:
- fcrepo.docker.local
environment:
- FCREPO_PORT=80
ports:
- "8080:80"
- "61613:61613"
- "61616:61616"
fuseki:
build: docker/services/fuseki
image: apix-poc/fuseki
depends_on:
- base-java
volumes:
- fuseki-data:/shared
networks:
apix:
aliases:
- fuseki.docker.local
ports:
- "3030:3030"
environment:
- FUSEKI_DEFAULT_DATASET=/fcrepo-triple-index
indexing-triplestore:
build: proof-of-concept/indexing-triplestore
image: apix-poc/indexing-triplestore
networks:
- apix
depends_on:
- base-java
environment:
- FCREPO_BASEURL=fcrepo.docker.local/fcrepo/rest
- JMS_BROKERURL=tcp://fcrepo.docker.local:61616
- TRIPLESTORE_BASEURL=fuseki.docker.local:3030/fcrepo-triple-index/update
- ERROR_MAMXREDELIVERIES=100000
go-proxy:
build: proof-of-concept/go-proxy/target
image: apix-poc/go-proxy
depends_on:
- build-go-proxy
networks:
apix:
aliases:
- go-proxy.docker.local
ports:
- "8082:80"
environment:
- PROXY_ADDR=fcrepo.docker.local
- PROXY_PATH=/
- BIND_ADDR=:80
# Tools & Utilities
# Contains gcc and go
builder:
container_name: builder
build: docker/tools/builder-native
image: apix-poc/builder
command: /bin/true
# 'wrk' utility for measuring latency and throughput
wrk:
container_name: wrk
build: docker/tools/wrk/target
image: apix-poc/wrk
networks:
- apix
depends_on:
- build-wrk
# Builders. These use Docker to build some artifact necessary for creating an image later on.
build-go-proxy:
container_name: build_go_proxy
image: apix-poc/builder
depends_on:
- builder
volumes:
- ./proof-of-concept/go-proxy/target:/go/src/go-proxy
command: go build --ldflags '-linkmode external -extldflags "-static"'
working_dir: /go/src/go-proxy
build-wrk:
container_name: build_wrk
image: apix-poc/builder
depends_on:
- builder
volumes:
- ./docker/tools/wrk/target:/mnt/wrk
command: /bin/sh /mnt/wrk/build.sh
environment:
- WRK_DIR=/mnt/wrk