# OryxOS 容器部署样例(与 tar.gz + bin/start.sh 路径并行,纯增量)。 # docker compose up -d # 起服务 # docker compose logs -f # 看日志(stdout,容器不写文件日志) # docker compose pull && docker compose up -d # 升级(换 tag 同理,回滚 = 换回旧 tag) # # 状态(config/ 工作区 .oryxos/ oryxos.db logs/)全部在 named volume oryxos-data 里, # 升级换镜像不丢数据。零 key 即可启动,Provider 在管理台 http://localhost:8080/admin/ 配置; # 也可挂载自己的 config/application.yml(见下 volumes 注释);如用环境变量占位符播种 Provider, # 请将相应变量配置在 environment 中(例如 DEEPSEEK_API_KEY),不要把 key 写入 YAML。 # 生产环境请从受保护的运行时密钥来源注入 ORYXOS_MASTER_KEY 并做好备份;不要把主密钥写入此文件。 # # 注意:默认 SQLite 单机存储 ⇒ 只能单副本。多副本:/data/config/application.yml 把 datasource 指向 # 企业 PostgreSQL(025,url + 账密自动识别)并开 oryxos.cluster.enabled=true + 每副本唯一 instance-id #(026:同会话恰好一答、定时恰好一次、崩溃接管、企微不互踢由 session 租约体系保障)。 services: oryxos: image: ghcr.io/oryx-labs/oryxos:latest container_name: oryxos ports: - "8080:8080" environment: TZ: Asia/Shanghai # ORYXOS_PORT: 8080 # 容器内端口( healthcheck 跟随;映射左侧改动即可换宿主端口) # JAVA_OPTS: -XX:MaxRAMPercentage=75.0 -Xlog:gc volumes: - oryxos-data:/data # 挂载自备配置(优先级高于首启模板): # - ./config/application.yml:/data/config/application.yml restart: unless-stopped # healthcheck 已内置于镜像(curl /api/v1/health),无需重复声明 # 优雅停机需要 ~32s:某第三方渠道客户端(长连接)的 Lifecycle stop 不回调, # Spring DefaultLifecycleProcessor 默认等满 30s latch 超时后才放弃并完成关闭。 # 默认 10s 宽限会走 SIGKILL——SQLite WAL 保证数据安全(已验证崩溃恢复),但停机不干净。 stop_grace_period: 40s # 可选:自托管 mem0 作为外部记忆后端(详见 docker/mem0/compose.yaml), # 在 config/application.yml 配置 memory.backend 后启用: # mem0: # image: mem0/mem0:latest # ... volumes: oryxos-data: