公共仓库(Git)
从任何公共 Git URL 部署 —— 克隆、构建、发布。
将 Pier 指向公共 Git 仓库(GitHub、GitLab、Bitbucket、Codeberg、Gitea,任何地方),Pier 克隆它、通过仓库中的 Dockerfile 构建,并运行结果容器。Webhook 友好用于推送部署。开源代码的最简单"我有仓库,部署它"模板。
使用 Pier 部署
- 1 打开 Pier 控制台,点击 Add service。
- 2 从模板列表中选择 Public Repository。
- 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
- 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。
什么是公共仓库模板?
给 Pier 公共 Git URL 加上仓库内 Dockerfile 路径,Pier 克隆仓库、构建镜像、 运行容器并用 Traefik 前置它。标准的 webhook 集成意味着每次 git 推送到监视 分支触发新鲜构建和 redeploy。
将其用于带 Dockerfile 的任何公共仓库 —— 你自己的开源项目、你想自托管的 第三方项目、fork、构建到容器的文档站点等。
Pier 如何部署它
你提供:
- 公共 Git URL(HTTPS 克隆 URL)
- 分支(或标签 / commit SHA)
- 仓库内 Dockerfile 的路径(默认为
/Dockerfile) - 容器端口和任何 env vars
Pier 执行配置分支的浅克隆,对 Dockerfile 运行 docker buildx build,本地
存储镜像,并用你配置的 env / 端口 / 卷启动容器。BuildKit 层缓存使增量
重新构建快。
在 Pier 中附加自定义域名以通过 Traefik 获得 HTTPS。从服务设置生成 webhook URL 并将其添加到你的 Git 主机以便未来推送自动部署。
何时不要使用本模板
对于私有仓库,使用 git-private-key(SSH deploy key)或 git-github-app
(GitHub App auth)。对于无 Dockerfile 的仓库,使用 Railpack —— 它自动
检测并构建。对于无仓库的一次性内联 Dockerfile 容器,使用 Dockerfile
模板。对于已在注册表中的预构建镜像,使用 Docker 镜像。
核心功能
任何公共 Git 主机
GitHub、GitLab、Bitbucket、Codeberg、sourcehut、自托管 Gitea/Forgejo —— 任何带公共可克隆 HTTPS URL 的东西都工作。
Dockerfile 驱动构建
Pier 在配置路径(默认仓库根目录)查找 Dockerfile,并用 BuildKit 构建。与 Dockerfile 模板相同的引擎。
分支 + 路径选择
选择分支和(对于 monorepo)仓库内 Dockerfile 的路径。
Webhook redeploy
Pier 生成 webhook URL;将其添加为 Git 主机上的 webhook,每次推送触发重新构建 + 上线。
通过 Traefik 的 HTTPS
附加自定义域名,Pier 用 Let's Encrypt TLS 前置运行容器。
BuildKit 缓存
重复构建使用 BuildKit 的层缓存;典型增量重新构建在 10-30 秒内完成。
应用场景
开源项目部署
在 GitHub 上找到的带 Dockerfile 的任何 OSS 项目部署。Pier 处理构建 + 主机。
你自己的公共仓库
公共仓库(例如你自己的作品集站点、个人 API)—— Pier 克隆、构建、部署。
文档站点
带可 Dockerfile 构建的文档站点的仓库(Astro、Docusaurus、Hugo、mdBook)。Pier 构建并提供结果。
快速共享演示
与想要尝试项目的同事共享 Git URL —— 他们将其粘贴到 Pier 并运行。
Fork 和部署工作流
Fork 上游项目,将调整推送到你的 fork,通过 Pier 用 webhook redeploy 部署你的 fork。
代码示例
服务名称:my-app
Git URL: https://github.com/user/repo
分支:main
Dockerfile 路径:/Dockerfile
端口:3000
→ Pier 克隆、构建、部署 Git URL: https://github.com/myorg/monorepo
分支:main
Dockerfile 路径:/services/api/Dockerfile
端口:8000 Pier 服务 → 设置 → 复制 webhook URL
GitHub 仓库 → 设置 → Webhooks → 添加:
URL: https://pier.example.com/webhook/abcd1234
内容类型:application/json
事件:仅 push 事件
→ 每次推送到 "main" 触发 redeploy 分支:v1.4.0 # 标签在分支字段中工作
→ Pier 检出标签;无意外更新 对比
| vs Dockerfile 模板(粘贴内联) | 对将迭代的代码使用公共仓库(webhook redeploy)。对无仓库的一次性容器使用 Dockerfile(粘贴)。 |
| vs 私有仓库(deploy-key / github-app 模板) | 当仓库不可公开克隆时使用那些模板。当你不需要身份验证时,公共仓库是最简单的路径。 |
| vs Railpack | Railpack 也接受 Git URL 但跳过 Dockerfile —— 它自动检测语言。当仓库有你想让 Pier 使用的 Dockerfile 时使用公共仓库;当你没有时使用 Railpack。 |
| vs Docker 镜像(本目录) | 镜像运行预构建镜像。公共仓库从源代码构建。管道中的不同点。 |
常见问题
哪些 Git 主机工作?
如何部署特定 commit / 标签?
仓库能多大?
构建参数?
运行时 env vars?
来自一个仓库的多个服务?
webhook 如何工作?
相关服务
在你的 VPS 上部署
将 Pier 指向公共 Git 仓库(GitHub、GitLab、Bitbucket、Codeberg、Gitea,任何地方),Pier 克隆它、通过仓库中的 Dockerfile 构建,并运行结果容器。Webhook 友好用于推送部署。开源代码的最简单"我有仓库,部署它"模板。
部署此服务 →