此存储库包含一组构建器和构建包,它们专为在Google Cloud的容器平台上运行而设计:Cloud Run、GKE、Anthos、App Engine、Cloud Functions和Compute Engine Running Container-Optimed OS。它们与CNCF Buildback 100%兼容。
Builder包含生成包和执行生成的检测顺序的容器映像。
构建一个可执行文件,它检查您的应用程序源代码,并制定构建和运行您的应用程序的计划。
这是一个通用的构建器,可以创建可在大多数平台(如Kubernetes/Anthos、Kative/Cloud Run、Container OS等)上运行的容器镜像,应由大多数用户使用。构建器尝试自动检测源代码的语言,还可以通过设置GOOGLE_Function_TARGET环境变量来构建与Google Cloud Function Framework兼容的函数。
这些构建器创建的容器镜像设计用于在Google Cloud的AppEngine和Functions服务上运行。大多数构建包与通用构建器中的构建包相同。
与通用构建器相比,有两个主要区别。首先,还有一些附加的构建包可以添加特定于每个服务的转换。其次,为了优化执行速度,每种语言都有单独的构建器。
Google Cloud Buildpack项目提供了适合与pack、kpack、tekton、skaffold和其他支持BuildPacksv3规范的工具一起使用的构建器映像。
下面的命令调用pack以应用通用构建器在当前目录中构建应用程序,然后将结果打包到名为<;app-name>;的本地容器映像中。
如果您的应用程序需要安装额外的系统包并在运行时可用,您可以通过定制运行容器映像来实现这一点。
cat>;run.Dockerfile<;<;<;EOF from gcr.io/buildpacks/gcp/run user root run apt-get update&;&;apt-get install-y--no-install-Recommise\imagemagick&;&apt-get lean&;\rm-rf/var/lib/apt/list/*user cnb EOFdocker build-t my-run-image-。
如果您需要某些包来构建应用程序,请基于基本构建器创建自定义构建器映像:
cat>;builder.Dockerfile<;<;<;eOF来自gcr.io/buildpack/builder用户root运行apt-get update&;&;apt-get install-y--no-install-Recommise\Subversion&;&;\apt-get lean&;&;\rm-rf/var/lib/apt/list/*user cnb EOFdocker build-t my-builder-image-f builds。
Google Cloud BuildPack支持使用一组跨运行时支持的环境变量进行配置。
google_entrypoint指定执行容器时运行的命令;相当于Dockerfile中的入口点。
GOOGLE_Function_TARGET,用于围绕Google Cloud Functions Framework构建的源代码。指定要调用的函数的名称。
示例:myFunction将使Functions Framework调用同名的函数。
如果指定了GOOGLE_RUNTIME,则强制运行时选择加入。如果运行时构建包出现在多个组中,将选择第一个组,这与构建包规范一致。(仅适用于安装语言运行时的构建包)。
GOOGLE_RUNTIME_VERSION如果指定,将覆盖要安装的运行时版本。(仅适用于安装语言运行时的构建包)。
GOOGLE_DEVMODE启用开发模式构建包。Skaffold使用它来实现实时本地开发,其中对源代码的更改会触发自动容器重建。要使用,请安装Skaffold并运行skaffold dev。
常规:缓存是特定于项目的,而不是跨项目的。依赖项(如JDK)不能跨项目共享,需要在第一次构建时重新下载。
Java:不可能将参数传递给maven命令(例如,特定的Maven配置文件)。
NODE:删除现有的NODE_MODULES目录,并使用Package.json和锁定文件(如果存在)重新安装依赖项。
Go Go 1.14在Linux内核的某些版本(5.3.15+、5.4.2+或5.5+以外的版本)中触发内核错误。如果使用受影响的版本,请在/etc/docker/daemon.json中设置以下内容:
请注意,此项目不是官方支持的Google产品。Google Cloud的客户可以使用标准支持渠道获取与Google Cloud产品一起使用构建包的帮助。