Openship Docker Compose部署指南:现有compose文件原样上线
2026/9/15 18:40:25 网站建设 项目流程

Openship Docker Compose部署指南:现有compose文件原样上线

【免费下载链接】openshipSelf-hosted deployment platform项目地址: https://gitcode.com/GitHub_Trending/ope/openship

如果你有一堆现成的docker-compose.yml项目,想免去重写配置的麻烦,Openship就是你的答案——这是一款开源的自托管部署平台(Self-hosted deployment platform),内置 CI/CD,能把你仓库里现有的Docker Compose文件原样读取并整体上线:每个 service 自动变成一条可管理的服务记录,端口、卷、环境变量、健康检查全部保留,还自动附带域名与 Let's Encrypt 证书。

为什么你的 compose 文件一行都不用改

传统方式上线多服务应用,往往要手写反向代理、证书、重启策略;Openship 的做法是直接解析你的 compose 文件,把「文件」变成「受管服务」👇

  • 逐个 service 建模:文件里声明的每个服务都会变成项目Services页中的一行,带 Public/Internal 徽标和实时状态(Running、Stopped、Failed…)。
  • 只读不写:Openship 不会改动你的docker-compose.yml,仪表盘上的修改由平台单独保存,仓库文件永远是干净的。
  • 每次部署自动对账:再部署时平台重读当前 compose 源(仓库或本地目录),自动与现有服务行同步,push 时若 compose 文件没被改动还会跳过扫描。

详细规则可参考官方文档中的多服务指南:apps/web/content/docs/guides/compose-multi-service.mdx。

三步快速上线:一键部署现有 compose 文件

第 1 步:在服务器上装好 Openship

最省心的方式是克隆仓库后用 Docker Compose 直接拉起整套平台(Postgres + Redis + API + 仪表盘 + OpenResty 边缘节点,详见 docker/docker-compose.yml):

git clone https://gitcode.com/GitHub_Trending/ope/openship && cd openship cp .env.example .env # 然后按需编辑 docker compose --env-file .env -f docker/docker-compose.yml up -d

💡 边缘节点是容器化的 OpenResty,直接接管:80/:443负责路由和 TLS(仅限 Linux 的 host 网络模式)。

第 2 步:创建项目,指向 compose 文件

  1. 打开仪表盘的Library页,连接你的 GitHub 仓库(或选择本地目录)。
  2. 选中目标仓库,进入部署向导——Openship 会自动读到docker-compose.yml并把每个服务列出来。
  3. 如果 compose 文件不在仓库根目录(比如deploy/docker-compose.yml),在向导的Compose file输入框填入路径,点Scan即可重新识别;文件名不叫docker-compose.yml(如stack.yml)也完全没问题。

想把这个路径固化下来?在项目里放一个openship.json即可:

{ "composePath": "deploy/docker-compose/docker-compose.yml" }

compose 解析的核心逻辑在 apps/api/src/lib/compose-parser.ts,它对相对路径build:上下文的解析方式与原生docker compose build完全一致。

第 3 步:部署并验证

点击Deploy后,顶部步骤条会逐项点亮,实时终端流式输出构建日志。完成后可在项目的Services标签页逐个查看服务状态,点任意一行还能进入服务详情页:

  • Overview:容器端口、映射宿主机端口、网络地址、卷挂载
  • Logs / Terminal:实时日志与容器内 Shell
  • Environment / Settings:在线改环境变量、镜像、重启策略、健康检查
  • Backup:对数据库等有状态容器直接安排定期备份

Openship 会读取 compose 文件的哪些字段?

平台对以下字段做了完整建模并参与部署:

类别字段
镜像与构建imagebuilddockerfile
网络与依赖portsdepends_onrestart
配置与数据environmentvolumescommand
健康检查healthcheck

networks、build args、labelsprofiles、注释等其余内容原样保留——平台既不读取也不重写它们。

仪表盘改了、仓库也改了怎么办?三方合并说清楚

这是新手最容易踩的坑,Openship 用三方对比(base / 你的编辑 / 仓库现值)优雅解决:

仓库改动你改过平台行为
保持你的值
自动采用仓库值
保留你的值,并标记为漂移(drift)待你确认

出现漂移时,Services 页会弹出醒目的横幅,逐字段展示from → to差异,你只需选Accept upstream(用仓库值)或Keep mine(锁定我的编辑)——你的修改永远不会被静默覆盖。

常用命令速查:CLI 管理 compose 服务栈

偏好终端?所有服务操作都有对应 CLI 命令(需 Docker Compose v2):

openship service list --project my-app # 列出服务 openship service sync --project my-app ./docker-compose.yml # 强制按文件重建服务行 openship service logs --project my-app web --follow openship service env set --project my-app web KEY=value openship service start --project my-app db # start / stop / restart 同理

常见问题清单 📌

Q:加完服务为什么没跑起来?A:添加服务只是「保存」,容器在部署时才启动。项目若已有运行中的部署会自动重新部署;否则手动点一次 Deploy(或用服务页的Enable & start)。

Q:service sync提示找不到 docker?A:该命令依赖docker compose config来校验文件,请在运行命令的机器上安装 Docker Compose v2。

Q:云部署时 volumes 不生效?A:自托管/自有服务器上 compose 语义完整(host:container映射与卷挂载都保留);Openship Cloud 上只路由容器端口,数据靠工作区磁盘 + 备份策略保障。

写在最后

Openship 让「现成 compose 文件」从一堆本地配置变成可持续运维的线上服务栈:解析原样、漂移可查、备份内置、证书自动。如果你正在维护多个 Compose 项目,不妨按上面的三步把第一个搬上线——之后每次 push,一切都会自动跟上 🚀

  • 平台自托管栈:docker/docker-compose.yml(含变量说明,版本可用OPENSHIP_VERSION锁定)
  • 环境变量模板:.env.example
  • 多服务完整指南:apps/web/content/docs/guides/compose-multi-service.mdx
  • compose 解析实现:apps/api/src/lib/compose-parser.ts

【免费下载链接】openshipSelf-hosted deployment platform项目地址: https://gitcode.com/GitHub_Trending/ope/openship

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询