forked from Soju06/codex-lb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
135 lines (130 loc) · 3.7 KB
/
Copy pathdocker-compose.yml
File metadata and controls
135 lines (130 loc) · 3.7 KB
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
services:
server:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env.local
ports:
- "2455:2455"
- "1455:1455"
command:
# uvicorn directly (not `fastapi run`) so --ws-max-size matches the
# websocket ingress budget that app.cli applies in production.
- uvicorn
- app.main:app
- --no-proxy-headers
- --host
- 0.0.0.0
- --port
- "2455"
- --reload
- --ws-max-size
- "134217728"
volumes:
- codex-lb-data:/var/lib/codex-lb
develop:
watch:
- action: sync
path: ./app
target: /app/app
- action: rebuild
path: ./pyproject.toml
- action: rebuild
path: ./uv.lock
- action: rebuild
path: ./Dockerfile
restart: unless-stopped
frontend:
build:
context: ./frontend
dockerfile_inline: |
FROM oven/bun:1.3.14-alpine
WORKDIR /app
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
COPY . .
CMD ["bun", "run", "dev", "--host", "0.0.0.0"]
ports:
- "5173:5173"
environment:
API_PROXY_TARGET: http://server:2455
develop:
watch:
- action: sync
path: ./frontend
target: /app
ignore:
- node_modules/
- action: rebuild
path: ./frontend/package.json
- action: rebuild
path: ./frontend/bun.lock
postgres:
image: postgres:18-alpine
profiles: ["postgres"]
entrypoint:
- sh
- -ceu
- |
if [ -f /var/lib/postgresql/PG_VERSION ]; then
echo >&2 "Detected a pre-Postgres-18 data directory at /var/lib/postgresql."
echo >&2 "Run: docker compose --profile postgres-upgrade run --rm postgres-upgrade"
echo >&2 "Refusing to start postgres:18-alpine before the named volume is upgraded."
exit 1
fi
if [ -f /var/lib/postgresql/data/PG_VERSION ]; then
pg_major="$$(cat /var/lib/postgresql/data/PG_VERSION)"
if [ "$$pg_major" != "18" ]; then
echo >&2 "Detected a nested Postgres $$pg_major data directory at /var/lib/postgresql/data."
echo >&2 "Run pg_upgrade against that data directory before starting postgres:18-alpine."
echo >&2 "For the default Compose volume layout, run: docker compose --profile postgres-upgrade run --rm postgres-upgrade"
exit 1
fi
fi
if [ "$#" -eq 0 ]; then
set -- postgres
fi
exec docker-entrypoint.sh "$@"
- codex-lb-postgres-entrypoint-guard
environment:
POSTGRES_USER: codex_lb
POSTGRES_PASSWORD: codex_lb
POSTGRES_DB: codex_lb
ports:
- "5432:5432"
command:
- postgres
- -c
- shared_preload_libraries=pg_stat_statements
- -c
- pg_stat_statements.max=10000
- -c
- pg_stat_statements.track=all
healthcheck:
test: ["CMD-SHELL", "pg_isready -U codex_lb -d codex_lb"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- codex-lb-postgres-data:/var/lib/postgresql
restart: unless-stopped
postgres-upgrade:
image: pgautoupgrade/pgautoupgrade:18-alpine@sha256:b0a1664b89698dba72276b3a4a2da9f2c879e9bb1d770fa273391bf6a4038e78
profiles: ["postgres-upgrade"]
environment:
POSTGRES_USER: codex_lb
POSTGRES_PASSWORD: codex_lb
POSTGRES_DB: codex_lb
PGAUTO_ONESHOT: "yes"
volumes:
- codex-lb-postgres-data:/var/lib/postgresql
restart: "no"
networks:
default:
driver: bridge
volumes:
codex-lb-data:
name: codex-lb-data
codex-lb-postgres-data:
name: codex-lb-postgres-data