111 lines
3.1 KiB
YAML
111 lines
3.1 KiB
YAML
# ============================================================
|
||
# 云超服 / YunOPC-Hub —— 三服务业务编排(主编排)
|
||
# opc-server (:8090,对外) ← 主 API / admin / website 后端 / 桌面更新源
|
||
# opc-im (:8101,内部) ← 即时通讯,由 opc-server 转发对外
|
||
# opc-compute (:3000,内部) ← 算力中转/计量,由 opc-server 代理
|
||
#
|
||
# 本文件只编排三个业务服务;基础设施(MySQL/Redis/EMQX)见
|
||
# mysql/、redis/、mqtt/ 子目录,先启动基础设施再加入同一外部网络。
|
||
#
|
||
# 前置:docker network create opc-network(基础设施与业务共用)
|
||
#
|
||
# 镜像在各自项目内构建(标准命名):
|
||
# server-core → opc-server:latest im-service → opc-im:latest compute → opc-compute:latest
|
||
#
|
||
# 用法(在本目录执行):
|
||
# cp .env.example .env # 填入 MySQL/Redis/MQTT/JWT 等实际值
|
||
# docker compose up -d --build # 首次构建并启动业务三服务
|
||
# docker compose logs -f # 查看日志
|
||
# ============================================================
|
||
services:
|
||
# ---------- 核心服务端(唯一对外) ----------
|
||
opc-server:
|
||
build:
|
||
context: ..
|
||
dockerfile: Dockerfile
|
||
image: opc-server:latest
|
||
container_name: opc-server
|
||
restart: unless-stopped
|
||
|
||
# 仅对外暴露 8090
|
||
ports:
|
||
- "8090:8090"
|
||
|
||
# 环境变量(三个容器共享本目录 .env;各服务只读取自己需要的变量)
|
||
env_file:
|
||
- .env
|
||
|
||
# 显式固定启动端口:env_file 会注入全部变量(含 compute 段的 PORT=3000),
|
||
# 显式覆盖避免误用;镜像入口已硬编码 8090,此处为兜底防御
|
||
environment:
|
||
PORT: "8090"
|
||
|
||
# 数据目录在项目 serverdata(seed/、prompts/ 模板与运行时数据均落宿主机,便于修改即时生效)
|
||
volumes:
|
||
- ../serverdata:/app/serverdata
|
||
- ../uploads:/app/uploads
|
||
|
||
# 先于 im / compute 之后启动(服务名互访;应用侧有连接重试)
|
||
depends_on:
|
||
- opc-im
|
||
- opc-compute
|
||
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 4G
|
||
|
||
networks:
|
||
- opc-network
|
||
|
||
# ---------- 即时通讯(容器内 :8101,不对外) ----------
|
||
opc-im:
|
||
build:
|
||
context: ../../im-service
|
||
dockerfile: Dockerfile
|
||
image: opc-im:latest
|
||
container_name: opc-im
|
||
restart: unless-stopped
|
||
|
||
env_file:
|
||
- .env
|
||
|
||
volumes:
|
||
- ../../im-service/serverdata:/app/serverdata
|
||
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 1G
|
||
|
||
networks:
|
||
- opc-network
|
||
|
||
# ---------- 算力微服务(容器内 :3000,不对外) ----------
|
||
opc-compute:
|
||
build:
|
||
context: ../../compute
|
||
dockerfile: Dockerfile
|
||
image: opc-compute:latest
|
||
container_name: opc-compute
|
||
restart: unless-stopped
|
||
|
||
env_file:
|
||
- .env
|
||
|
||
volumes:
|
||
- ../../compute/serverdata:/app/serverdata
|
||
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 1G
|
||
|
||
networks:
|
||
- opc-network
|
||
|
||
networks:
|
||
opc-network:
|
||
name: opc-network
|
||
external: true
|