尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何用 Dokku git:from-archive 部署预构建的二进制归档?

如何用 Dokku git:from-archive 部署预构建的二进制归档? 如何用 Dokku git:from-archive 部署预构建的二进制归档【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku如果你已经把应用编译成了预构建的二进制归档例如 Java jar 或 Go 二进制又不想像普通源码那样走 git push 构建Dokku 提供的git:from-archive命令可以直接用归档文件初始化或更新一个 Dokku 应用仓库。执行后Dokku 会像仓库中包含了归档解压后的内容一样去构建应用因此它同样适合从 GitHub 仓库的某个 commit 直接拉取归档部署。该命令自 Dokku 0.24.0 起可用archive 部署文档。前提条件已安装 Dokku且版本不低于 0.24.0。git:from-archive从 0.24.0 开始提供此前负责此功能的tar插件已在 0.24.0 中被弃用并在 0.26.0 中被移除见 0.24.0 迁移指南 与 0.26.0 迁移指南旧插件用户应切换到git:from-archive。归档文件可以通过一个 URL 访问或者准备通过 stdin 管道传入。命令在 Dokku 主机上执行目标应用名如示例中的node-js-app是文档示例中的应用替换为你自己的应用名即可。从 URL 部署 tar 归档命令格式为git:from-archive [--archive-type ARCHIVE_TYPE] app archive-url [git-username git-email]来自 git 部署文档 的命令参考。文档示例dokku git:from-archive node-js-app https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar执行后 Dokku 会下载归档、解压并像仓库包含了展开后的内容一样构建应用。两个执行层面的细节归档中的user.name/user.email参数是可选的按此顺序。留空时作者会回退为Dokku和automateddokku.shdokku git:from-archive node-js-app https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar Camila camilaexample.com用同一个归档文件多次触发构建时因为检测不到变更Dokku 会提前以退出码0结束不会重复构建。判断「这次归档是否真的产生了新部署」时可以把这一点算进你的检查逻辑。使用 zip 归档或从 stdin 传入默认归档类型固定为.tar。如果你的归档不是 tar 格式必须显式加--archive-type标志否则解压会失败dokku git:from-archive --archive-type zip node-js-app https://github.com/dokku/smoke-test-app/archive/2.0.0.zip Camila camilaexample.com命令实现internal-functions中校验的合法类型为tar、tar.gz、zip传入其他值会直接报错Invalid archive type specified。如果归档 URL 写为--归档会改为从 stdin 获取curl -sSL https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar | dokku git:from-archive node-js-app --归档安全校验与大小限制归档在解压前会做安全校验以防止路径穿越和符号链接逃逸。以下内容会被拒绝见 archive 部署文档包含绝对路径的条目包含父目录穿越条目..指向解压目录之外的符号链接。仓库中的单元测试tests/unit/archive-security.bats给出了被拒绝时的报错文案排查时可对照触发条件报错信息绝对路径符号链接目标absolute targets指向外部的相对穿越符号链接symlinks pointing outside extraction directory绝对路径条目absolute paths父目录穿越条目Archive contains entry with parent directory traversal除了安全校验还有两项可用全局 git 属性调整的限制archive-max-size— 归档最大字节数默认10737418241 GiBarchive-max-files— 归档内最大条目数默认10000。调整方式在 Dokku 主机上dokku git:set --global archive-max-size 2147483648 dokku git:set --global archive-max-files 20000不传值即可恢复默认dokku git:set --global archive-max-size超限时命令会失败测试中记录的报错文案为Archive exceeds maximum allowed size of N bytes大小超限与exceeds the maximum of N条目数超限。如果部署因这两个报错失败先确认归档实际大小和文件数是否超过了你设置的限制而不是直接调大限制。验证部署与当前限制部署完成后用git:report检查应用的 git 状态和归档相关配置git 部署文档dokku git:report node-js-app文档示例输出示例结果其中的 sha、时间戳等数值仅演示格式 node-js-app git information Git computed archive max files: 10000 Git computed archive max size: 1073741824 Git computed deploy branch: master Git computed keep git dir: false Git deploy branch: ... Git rev env var: GIT_REV Git sha: a1b2c3d Git last updated at: 1700000000输出中computed-prop是部署时实际生效的值先取应用级、再取全局级、最后落到内置默认deploy-branch、keep-git-dir等裸键则是原始配置未设置时为空。只想看某一项时可以加标志例如dokku git:report node-js-app --git-deploy-branch查看全局归档限制的当前值dokku git:report --global构建本身的日志与结果可以通过 builds 插件查看builds 文档凡是经过 Dokku 的部署——包括git:from-archive——都会记录为结构化的构建记录可以查看正在部署的任务、历史部署结果和捕获的构建日志。限制与注意归档类型不匹配是最常见的失败默认按.tar处理zip / tar.gz 归档必须显式传--archive-type。归档内含路径穿越或外指符号链接时会被拒绝这是安全校验的预期行为不要绕过应修正归档内容本身。同一归档重复执行会以退出码 0 提前结束且不产生新构建不要把「命令成功」直接等同于「发生了新部署」。该命令是 receive-branch 等触发器链路的一部分插件作者可针对git-from-archive触发器做扩展普通部署流程不需要关心这一层。【免费下载链接】dokkuA docker-powered PaaS that helps you build and manage the lifecycle of applications项目地址: https://gitcode.com/GitHub_Trending/do/dokku创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表