4.3 KB172 lines
Blame
1services:
2 registry:
3 image: registry:2
4 ports:
5 - "127.0.0.1:5000:5000"
6 volumes:
7 - registry-data:/var/lib/registry
8 environment:
9 - REGISTRY_STORAGE_DELETE_ENABLED=true
10 restart: unless-stopped
11
12 mononoke-slapi:
13 image: grove/mononoke:latest
14 command:
15 - --listening-host-port
16 - "0.0.0.0:8443"
17 - --config-path
18 - /data/grove/mononoke-config
19 - --local-configerator-path
20 - /data/grove/configerator
21 - --cache-mode
22 - disabled
23 - --just-knobs-config-path
24 - /data/grove/justknobs.json
25 - --tls-certificate
26 - /data/grove/tls/server.crt
27 - --tls-private-key
28 - /data/grove/tls/server.key
29 - --tls-ca
30 - /data/grove/tls/ca.crt
31 ports:
32 - "8443:8443"
33 volumes:
34 - /data/grove:/data/grove
35 restart: unless-stopped
36
37 mononoke-git:
38 image: grove/mononoke:latest
39 entrypoint: ["/usr/local/bin/git_server"]
40 command:
41 - --listen-host
42 - "0.0.0.0"
43 - --listen-port
44 - "8080"
45 - --config-path
46 - /data/grove/mononoke-config
47 - --local-configerator-path
48 - /data/grove/configerator
49 - --cache-mode
50 - disabled
51 - --just-knobs-config-path
52 - /data/grove/justknobs.json
53 - --tls-certificate
54 - /data/grove/tls/server.crt
55 - --tls-private-key
56 - /data/grove/tls/server.key
57 - --tls-ca
58 - /data/grove/tls/ca.crt
59 ports:
60 - "8080:8080"
61 volumes:
62 - /data/grove:/data/grove
63 depends_on:
64 mononoke-slapi:
65 condition: service_started
66 restart: unless-stopped
67
68 grove-bridge:
69 image: grove/mononoke:latest
70 entrypoint: ["/usr/local/bin/grove_bridge"]
71 command:
72 - --listening-host-port
73 - "0.0.0.0:3100"
74 - --config-path
75 - /data/grove/mononoke-config
76 - --local-configerator-path
77 - /data/grove/configerator
78 - --cache-mode
79 - disabled
80 - --just-knobs-config-path
81 - /data/grove/justknobs.json
82 volumes:
83 - /data/grove:/data/grove
84 depends_on:
85 mononoke-slapi:
86 condition: service_started
87 restart: unless-stopped
88
89 grove-api:
90 image: localhost:5000/grove-api:latest
91 environment:
92 - PORT=4000
93 - DATABASE_PATH=/data/api/grove.db
94 - JWT_SECRET=${JWT_SECRET}
95 - GROVE_HUB_API_URL=http://hub-api:4000
96 - GROVE_BRIDGE_URL=http://grove-bridge:3100
97 - MONONOKE_CONFIG_PATH=/data/grove/mononoke-config
98 - CANOPY_ENABLED=true
99 - CANOPY_WORKSPACE_DIR=/canopy/workspaces
100 - CANOPY_WORKSPACE_HOST_DIR=/opt/grove/canopy/workspaces
101 - PAGES_SITES_DIR=/opt/grove/pages/sites
102 - CORS_ORIGIN=https://${DOMAIN:-grove.host}
103 - NODE_ENV=production
104 volumes:
105 - api-data:/data/api
106 - /data/grove:/data/grove
107 - /var/run/docker.sock:/var/run/docker.sock
108 - /opt/grove/canopy/workspaces:/canopy/workspaces
109 - pages-sites:/opt/grove/pages/sites
110 depends_on:
111 grove-bridge:
112 condition: service_started
113 restart: unless-stopped
114
115 hub-api:
116 image: localhost:5000/grove-hub-api:latest
117 volumes:
118 - hub-data:/data
119 - /data/grove/tls:/data/grove/tls:ro
120 environment:
121 - PORT=4000
122 - DATABASE_PATH=/data/hub.db
123 - JWT_SECRET=${JWT_SECRET}
124 - RP_ID=${DOMAIN:-grove.host}
125 - ORIGIN=https://${DOMAIN:-grove.host}
126 - CORS_ORIGIN=https://${DOMAIN:-grove.host}
127 - NODE_ENV=production
128 restart: unless-stopped
129
130 grove-web:
131 image: localhost:5000/grove-web:latest
132 volumes:
133 - collab-data:/data/collab
134 environment:
135 - GROVE_HUB_API_URL=http://hub-api:4000
136 - GROVE_API_URL=http://grove-api:4000
137 - DATA_DIR=/data/collab
138 - COLLAB_SOCKET_PORT=3334
139 - JWT_SECRET=${JWT_SECRET}
140 - NODE_ENV=production
141 depends_on:
142 - hub-api
143 - grove-api
144 restart: unless-stopped
145
146 caddy:
147 image: caddy:2-alpine
148 ports:
149 - "80:80"
150 - "443:443"
151 volumes:
152 - ./Caddyfile:/etc/caddy/Caddyfile:ro
153 - caddy-data:/data
154 - caddy-config:/config
155 - pages-sites:/srv/pages/sites:ro
156 environment:
157 - DOMAIN=${DOMAIN:-localhost}
158 depends_on:
159 - hub-api
160 - grove-web
161 - grove-api
162 restart: unless-stopped
163
164volumes:
165 registry-data:
166 api-data:
167 hub-data:
168 collab-data:
169 caddy-data:
170 caddy-config:
171 pages-sites:
172