forked from OriginProtocol/origin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
208 lines (196 loc) · 6.59 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
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
version: "3"
volumes:
ipfs:
services:
postgres:
container_name: postgres
restart: always
image: postgres:10.0
environment:
- POSTGRES_USER=origin
- POSTGRES_PASSWORD=origin
- POSTGRES_DB=origin
elasticsearch:
container_name: elasticsearch
image: elasticsearch
build:
context: .
dockerfile: development/dockerfiles/elasticsearch
ports:
- "9200:9200"
environment:
network.bind_host: 0
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
logging:
driver: none
# NOTE/TODO: This container is only responsible for running ganache and IPFS,
# this functionality should be moved to dedicated containers
origin:
container_name: origin
image: origin
build: .
ports:
- "8545:8545" # Ganache
volumes:
# Addresses for deployment of contracts to local blockchain will get
# written to the build files
- ./origin-contracts/build:/app/origin-contracts/build
- ./origin-contracts/migrations:/app/origin-contracts/migrations
- ./origin-js/scripts:/app/origin-js/scripts
- ./origin-js/package.json:/app/origin-js/package.json
- ./origin-js/test:/app/origin-js/test
- ./origin-js/src:/app/origin-js/src
command: npm run start --prefix origin-js
origin-ipfs-proxy:
container_name: origin-ipfs-proxy
image: origin
ports:
- "9999:9999"
environment:
- IPFS_API_URL=http://origin:5002
- IPFS_GATEWAY_URL=http://origin:8080
volumes:
- ./origin-ipfs-proxy/src:/app/origin-ipfs-proxy/src
- ./origin-ipfs-proxy/package.json:/app/origin-ipfs-proxy/package.json
command: npm run start --prefix origin-ipfs-proxy
origin-discovery:
container_name: origin-discovery
image: origin
volumes:
- ./origin-js/src:/app/origin-js/src
- ./origin-discovery/src:/app/origin-discovery/src
- ./origin-discovery/config:/app/origin-discovery/config
- ./origin-discovery/package.json:/app/origin-discovery/package.json
environment:
- DATABASE_URL=postgres://origin:origin@postgres/origin
- ELASTICSEARCH_HOST=elasticsearch:9200
depends_on:
- origin
- postgres
- elasticsearch
ports:
- "4000:4000"
command: npm run start:discovery --prefix origin-discovery
origin-growth:
container_name: origin-growth
image: origin
volumes:
- ./experimental/origin-graphql/src:/app/experimental/origin-graphql/src
- ./origin-growth/src:/app/origin-growth/src
- ./origin-growth/config:/app/origin-growth/config
- ./origin-growth/package.json:/app/origin-growth/package.json
environment:
- DATABASE_URL=postgres://origin:origin@postgres/origin
depends_on:
- postgres
ports:
- "4001:4001"
command: npm run start:growth --prefix origin-growth
event-listener:
container_name: event-listener
image: origin
volumes:
- ./origin-contracts/build:/app/origin-contracts/build
- ./origin-js/src:/app/origin-js/src
- ./origin-discovery/src:/app/origin-discovery/src
- ./origin-discovery/migrations:/app/origin-discovery/migrations
- ./origin-discovery/config:/app/origin-discovery/config
- ./development/envfiles/event-listener.env:/app/origin-discovery/.env
depends_on:
- origin
- postgres
- elasticsearch
- origin-ipfs-proxy
command:
>
/bin/bash -c "wait-for.sh -t 0 -q origin:8080 --
wait-for.sh -t 0 -q elasticsearch:9200 --
npm run migrate --prefix origin-discovery &&
npm run start:listener --prefix origin-discovery"
origin-messaging:
container_name: origin-messaging
image: origin
ports:
- "9012:9012"
volumes:
- ./origin-messaging/src:/app/origin-messaging/src
- ./origin-messaging/package.json:/app/origin-messaging/package.json
- ipfs:/app/ipfs
environment:
- MESSAGING_NAMESPACE=dev
- IPFS_REPO_PATH=/app/ipfs
command: npm run start --prefix origin-messaging
origin-bridge:
container_name: origin-bridge
image: origin-bridge
build:
context: .
dockerfile: development/dockerfiles/origin-bridge
volumes:
- ./origin-bridge:/app
# Set the envfile from the local envfile
- ./development/envfiles/origin-bridge.env:/app/.env
depends_on:
- postgres
environment:
- FLASK_APP=/app/main.py
- FLASK_DEBUG=True
- PYTHONUNBUFFERED=1
ports:
- "5000:5000"
command: /bin/bash -c "flask db upgrade && flask run --host=0.0.0.0"
origin-notifications:
container_name: origin-notifications
image: origin
volumes:
- ./origin-notifications/src:/app/origin-notifications/src
- ./origin-notifications/migrations:/app/origin-notifications/migrations
- ./origin-notifications/package.json:/app/origin-notifications/package.json
- ./development/envfiles/origin-notifications.env:/app/origin-notifications/.env
depends_on:
- postgres
environment:
- DATABASE_URL=postgres://origin:origin@postgres/origin
ports:
- "3456:3456"
command:
>
/bin/bash -c "wait-for.sh -t 0 -q postgres:5432 --
npm run migrate --prefix origin-notifications &&
npm run start --prefix origin-notifications"
origin-dapp:
container_name: origin-dapp
image: origin
volumes:
# Include origin-contracts build files so the DApp has access to the
# address of the contracts on the local blockchain
- ./origin-contracts/build:/app/origin-contracts/build
- ./origin-js/src:/app/origin-js/src
# Mount origin-dapp inside the container
- ./origin-dapp/src:/app/origin-dapp/src
- ./origin-dapp/public:/app/origin-dapp/public
- ./origin-dapp/translations:/app/origin-dapp/translations
- ./origin-dapp/webpack.config.js:/app/origin-dapp/webpack.config.js
- ./origin-dapp/package.json:/app/origin-dapp/package.json
# Set the envfile from the local envfile
- ./development/envfiles/origin-dapp.env:/app/origin-dapp/.env
- ipfs:/app/ipfs
depends_on:
- origin-ipfs-proxy
- event-listener
- origin
- origin-discovery
- origin-messaging
- origin-bridge
- origin-notifications
ports:
- "3000:3000"
command:
# Waits for origin-messaging to start then uses a script to read the
# origin-messaging IPFS peer id and write the configuration key/pair to
# the .env file.
>
/bin/bash -c "wait-for.sh -t 0 -q origin-messaging:9012 &&
. set-ipfs-swarm.sh /app/ipfs/config &&
wait-for.sh -t 0 -q origin:8080 --
npm run start --prefix origin-dapp"