-
Notifications
You must be signed in to change notification settings - Fork 79
/
docker-compose.yml
110 lines (103 loc) · 3.34 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
# Version 3 had a lot of updates for use in deployed environments,
# but it dropped stuff useful for local dev like "depends_on" conditions
version: '2'
services:
db:
container_name: algomart-db
image: postgres:13-alpine
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_DB=algomart
healthcheck:
test: ['CMD', 'pg_isready', '-q', '-d', 'algomart', '-U', 'postgres']
timeout: 10s
interval: 10s
retries: 10
ports:
- 5555:5432
volumes:
- ./docker/local/db/entrypoint:/docker-entrypoint-initdb.d/
api:
container_name: algomart-api
build:
context: .
dockerfile: ./docker/local/api/Dockerfile
depends_on:
db:
condition: service_healthy
ports:
- 3001:3001
environment:
- API_KEY=5e22baa64da181ba9b1c4c5df41f5db51bf57445a6c12c0f211b74da7b430d9a
- CMS_ACCESS_TOKEN=600122b146b3691881ff8e8d7b58ee41e370949928a2553054c63c80828c4089
- CMS_URL=http://cms:8055
- CREATOR_PASSPHRASE=fdeef67f5ae4347dec7faa07b5b883a3555222d00a31a2a4eee359d9d6f3081b
- CURRENCY=USD
- DATABASE_URL=postgresql://api@db:5432/algomart
- DATABASE_SCHEMA=api
- HOST=0.0.0.0
- PORT=3001
- SECRET=81cc87552956fbef03cccf738b21f1604629ee6d03d6d5120d3cbbf3162c9a4b
- WEB_URL=http://web:3000
env_file:
# This .env should contain details for:
# - Algod (and funding account)
# - Circle
# - Coinbase
# - Sendgrid
- ./apps/api/.env
volumes:
- ./package.json:/app/package.json
- ./package-lock.json:/app/package-lock.json
- ./node_modules:/app/node_modules
# Install all API/web dependencies at once to make life easier
- ./apps/web:/app/apps/web
- ./packages:/app/packages
- ./services:/app/services
cms:
container_name: algomart-cms
build:
context: .
dockerfile: ./docker/local/cms/Dockerfile
depends_on:
db:
condition: service_healthy
ports:
- 8055:8055
environment:
- CURRENCY=USD
- KEY=600122b146b3691881ff8e8d7b58ee41e370949928a2553054c63c80828c4089
- SECRET=7647f8c3fcfd11101bd68e402ceefad60f58607b35e84a65f36aa0f9a03e5f06
# This needs to be from the browser's perspective, since Directus prepends
# assets with this URL rather than using relative paths
- PUBLIC_URL=http://localhost:8055
# Directus uses these to automatically create the first admin user
- ADMIN_EMAIL=admin@example.com
- ADMIN_PASSWORD=password
# These are necessary *even if* `DB_CONNECTION_STRING` is supplied, so just use them instead
- DB_CLIENT=postgres
- DB_DATABASE=algomart
- DB_SEARCH_PATH=cms
- DB_HOST=db
- DB_PORT=5432
- DB_USER=cms
- DB_PASSWORD=
volumes:
- ./apps/cms/extensions:/directus/extensions
web:
container_name: algomart-web
build:
context: .
dockerfile: ./docker/local/web/Dockerfile
ports:
- 3000:3000
environment:
- API_KEY=5e22baa64da181ba9b1c4c5df41f5db51bf57445a6c12c0f211b74da7b430d9a
- API_URL=http://api:3001
- CURRENCY=USD
volumes:
- ./package.json:/app/package.json
- ./package-lock.json:/app/package-lock.json
- ./node_modules:/app/node_modules
- ./packages:/app/packages
- ./apps/web:/app/apps/web