-
Notifications
You must be signed in to change notification settings - Fork 34
/
docker-compose.yml
113 lines (94 loc) · 3.02 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
name: jonogon-mono
services:
mono:
build:
context: .
dockerfile: Dockerfile
working_dir: /mono
command: pnpm run dev
environment:
NODE_ENV: development
DATABASE_URL: "${DATABASE_URL:-postgresql://postgres:postgres@postgres:5432/postgres}" # useful for `misc/migrator`
PORT: 12001 # `jonogon-core` port
COMMON_HMAC_SECRET: tomato-is-a-fruititable
COMMON_ENCRYPTION_SECRET: tomtato-is-an-actual-plant
BULKSMSBD_API_KEY: "${BULKSMSBD_API_KEY:-}"
CLOUDFLARE_ENDPOINT: "${CLOUDFLARE_ENDPOINT:-}"
CLOUDFLARE_ACCOUNT_ID: "${CLOUDFLARE_ACCOUNT_ID:-}"
CLOUDFLARE_ACCESS_KEY_ID: "${CLOUDFLARE_ACCESS_KEY_ID:-}"
CLOUDFLARE_SECRET_ACCESS_KEY: "${CLOUDFLARE_SECRET_ACCESS_KEY:-}"
CLOUDFLARE_API_TOKEN: "${CLOUDFLARE_API_TOKEN:-}"
FIREBASE_AUTH_EMULATOR_HOST: "localhost:12005"
NEXT_PUBLIC_FIREBASE_WEB_CONFIG_JSON_BASE64URL: "${NEXT_PUBLIC_FIREBASE_WEB_CONFIG_JSON_BASE64URL:-}"
FIREBASE_ADMIN_PRIVATE_KEY_JSON_BASE64URL: "${FIREBASE_ADMIN_PRIVATE_KEY_JSON_BASE64URL:-}"
ports:
- target: 12001 # `jonogon-core` HTTP port
published: 12001
protocol: tcp
- target: 14001 # `jonogon-core` debugger port
published: 14001
protocol: tcp
- target: 12002 # `jonogon-web` HTTP port
published: 12002
protocol: tcp
- target: 12003 # `jonogon-web-next` HTTP port
published: 12003
protocol: tcp
- target: 12004 # firebase emulator UI HTTP port
published: 12004
protocol: tcp
- target: 12005 # firebase auth emulator HTTP port
published: 12005
protocol: tcp
- target: 12006 # wrangler dev: jonogon-rendering HTTP port
published: 12006
protocol: tcp
volumes:
- source: .
target: /mono
type: bind
- source: mono-pnpm-store
target: /mono/.pnpm-store
type: volume
- source: core-static-storage
target: /jonogon-static/
type: volume
- source: firebase-emulator-storage
target: /firebase-persistence
type: volume
depends_on:
- postgres
- redis
postgres:
image: postgres:16.4-alpine3.20
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- target: 5432
published: 5433 # changed; in case you have a local postgres running
protocol: tcp
volumes:
- target: /var/lib/postgresql/data
source: postgres-data
type: volume
redis:
image: bitnami/redis:6.2
environment:
ALLOW_EMPTY_PASSWORD: yes
ports:
- target: 6379
published: 6380 # changed; in case you have a local redis running
protocol: tcp
volumes:
- target: /bitnami/redis/data
source: redis-data
type: volume
volumes:
# named volumes; they aren't removed on `docker compose down`
mono-pnpm-store:
core-static-storage:
firebase-emulator-storage:
postgres-data:
redis-data: