-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
78 lines (75 loc) · 2.38 KB
/
docker-compose.dev.yml
File metadata and controls
78 lines (75 loc) · 2.38 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
# 开发环境编排 — 源码挂载 + 实时编译
# 使用方式: docker compose -f deploy/docker-compose.dev.yml up
#
# 仅拉起 core + pg + redis + 前端构建。插件(gateway-openai / payment-epay /
# airgate-health 等)启动后通过管理后台「插件市场」自行安装即可,
# data/plugins 是持久 volume,装一次后续重启不会丢。
services:
postgres:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: airgate
POSTGRES_PASSWORD: airgate
POSTGRES_DB: airgate
volumes:
- ../data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U airgate -d airgate"]
interval: 5s
timeout: 5s
retries: 20
redis:
image: redis:7
restart: unless-stopped
command: ["redis-server", "--requirepass", "airgate-dev"]
volumes:
- ../data/redis:/data
healthcheck:
test: ["CMD-SHELL", "redis-cli -a airgate-dev --no-auth-warning ping | grep -q PONG"]
interval: 5s
timeout: 3s
retries: 20
frontend-builder:
image: node:22-bookworm
working_dir: /workspace
volumes:
- ../..:/workspace
- ../data/pnpm_store:/root/.local/share/pnpm/store
command:
- bash
- -lc
- >-
set -e;
corepack enable;
corepack prepare pnpm@11.1.1 --activate;
cd /workspace/airgate-core/web && pnpm install --frozen-lockfile && pnpm build
restart: "no"
core:
image: golang:1.25-bookworm
working_dir: /workspace/airgate-core/backend
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
frontend-builder:
condition: service_completed_successfully
environment:
CONFIG_PATH: /workspace/airgate-core/backend/config.docker.yaml
PLUGINS_DIR: /workspace/airgate-core/backend/data/plugins
ASSETS_DIR: /workspace/airgate-core/backend/data/assets
REDIS_PASSWORD: airgate-dev
volumes:
- ../..:/workspace
- ../data/go_pkg_mod:/go/pkg/mod
- ../data/go_build_cache:/root/.cache/go-build
- ../data/plugins:/workspace/airgate-core/backend/data/plugins
- ../data/assets:/workspace/airgate-core/backend/data/assets
ports:
- "9517:9517"
command:
- bash
- -lc
- /usr/local/go/bin/go run -buildvcs=false ./cmd/server