无需 Dockerfile 的 Docker:使用云原生构建包 (CNB) 在 5 分钟内构建 Ruby on Rails 应用程序映像

这篇文章介绍了如何使用 Cloud Native Buildpack(CNB)构建 Ruby on Rails 应用的 OCI 镜像,无需编写或维护 Dockerfile,具体内容如下:

  • 安装 pack CLI:假设已安装 docker 和 git,通过 Homebrew 安装 pack CLI,确保安装正确并设置默认构建器为 heroku/builder:22,若在不同架构机器上需设置 Docker 默认平台为 linux/amd64。
  • 什么是构建器(builder):构建器是 buildpacks 的交付机制,包含基础镜像和单个 buildpack 的引用,基础镜像包含操作系统和系统依赖,buildpacks 用于配置运行应用的镜像。可以通过pack builder inspect查看构建器内容。
  • 下载示例 Ruby on Rails 应用:下载一个预构建的 Ruby on Rails 应用,通过git clone获取并进入应用目录,本教程基于 amd64 架构。
  • 使用 pack CLI 构建应用镜像:执行pack build my-image-name --path.命令,使用 heroku 构建器针对应用构建镜像,过程中会进行分析、检测、恢复、构建等步骤,包括安装各种依赖、编译资产等,最终成功构建镜像并可在本地查看。
  • pack build的作用:运行pack build时,每个 buildpack 会运行检测脚本确定是否构建应用,检测阶段后 buildpack 执行,可查看输出中的参与 buildpack,CNB 的 buildpack API 提供了对层的精细控制,所有 CNB 生成的镜像可重基,且改进了 Dockerfile 的一些问题。
  • 使用镜像:可以使用docker run命令运行构建的镜像,默认会启动 web 服务器配置,也可通过环境变量等进行配置,还可以访问容器终端进行交互,了解内部结构,如layers文件夹和 entrypoint 等。
  • 尝试在应用中使用 CNBs:鼓励尝试使用pack和 Heroku 构建器构建应用并分享经验,还介绍了配置多种语言的方法,通过project.toml文件指定多个 buildpack,以及使用Procfile配置 web 进程。
阅读 4
0 条评论