将内容从本地文件系统流式传输到构建器称为 Binary
类型构建。这些构建的 BuildConfig.spec.source.type
的对应值为 Binary
。
这种源类型是独一无二的,因为它仅基于您对 oc start-build
的使用。
|
二进制类型构建需要将内容从本地文件系统流式传输,因此无法自动触发二进制类型构建(例如镜像更改触发器)。这是因为无法提供二进制文件。同样,您也无法从 Web 控制台启动二进制类型构建。
|
要使用二进制构建,请使用以下选项之一调用 oc start-build
:
-
--from-file
:您指定的文件内容将作为二进制流发送到构建器。您也可以指定文件的 URL。然后,构建器将数据存储在构建上下文顶部的同名文件中。
-
--from-dir
和 --from-repo
:内容将被存档并作为二进制流发送到构建器。然后,构建器将在构建上下文目录中提取存档的内容。使用 --from-dir
,您还可以指定存档的 URL,该 URL 将被提取。
-
--from-archive
:您指定的存档将发送到构建器,并在构建上下文目录中提取。此选项的行为与 --from-dir
相同;每当这些选项的参数是目录时,都会首先在您的主机上创建一个存档。
您可以将具有 HTTP 或 HTTPS 架构的 URL 传递给 --from-file
和 --from-archive
,而不是文件名。当使用 URL 与 --from-file
时,构建器镜像中文件的名称由 Web 服务器发送的 Content-Disposition
标头确定,如果标头不存在,则由 URL 路径的最后一个组件确定。不支持任何形式的身份验证,并且无法使用自定义 TLS 证书或禁用证书验证。
使用 oc new-build --binary=true
时,该命令确保强制执行与二进制构建相关的限制。生成的 BuildConfig
的源类型为 Binary
,这意味着运行此 BuildConfig
的构建的唯一有效方法是使用 oc start-build
以及其中一个 --from
选项来提供所需的二进制数据。
Dockerfile 和 contextDir
源选项对二进制构建具有特殊含义。
Dockerfile 可用于任何二进制构建源。如果使用 Dockerfile 并且二进制流是存档,则其内容将替换存档中任何 Dockerfile。如果将 Dockerfile 与 --from-file
参数一起使用,并且文件参数名为 Dockerfile,则来自 Dockerfile 的值将替换来自二进制流的值。
对于封装提取的存档内容的二进制流,contextDir
字段的值被解释为存档中的子目录,如果有效,则构建器在执行构建之前将更改到该子目录。