从本地文件系统流式传输内容到构建器称为Binary
类型构建。对于这些构建,BuildConfig.spec.source.type
的对应值为Binary
。
此源类型是独一无二的,因为它仅基于您对oc start-build
的使用而被利用。
|
二进制类型构建需要从本地文件系统流式传输内容,因此无法自动触发二进制类型构建(例如镜像更改触发器)。这是因为无法提供二进制文件。同样,您也无法从 Web 控制台启动二进制类型构建。
|
要使用二进制构建,请使用以下选项之一调用oc start-build
:
-
--from-file
:您指定的的文件内容将作为二进制流发送到构建器。您也可以指定文件的URL。然后,构建器将数据存储在构建上下文顶部的同名文件中。
-
--from-dir
和 --from-repo
:内容将被存档并作为二进制流发送到构建器。然后,构建器会在构建上下文目录中解压缩存档的内容。使用--from-dir
,您还可以指定指向存档的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
字段的值将被解释为存档内的子目录,如果有效,则构建器会在执行构建之前进入该子目录。