openshift - 如何在 OCP Git 源代码构建中使用不同名称的 Dockerfile
问题描述
我正在尝试创建此 Dockerfile的Git 源构建: https ://github.com/WASdev/ci.docker/blob/master/ga/latest/full/Dockerfile.ubi.ibmjava8
我的 BuildConfig 中有以下配置:
source:
git:
uri: "https://github.com/WASdev/ci.docker"
ref: "master"
contextDir: "ga/latest/full"
但是,上面假设使用Dockerfile
文件名,而我想Dockerfile.ubi.ibmjava8
在docker build -f Dockerfile.ubi.ibmjava8 .
.
如何在 OpenShift 中使用 Dockerfile.ubi.ibmjava8 而不是 Dockerfile?
解决方案
TL;DR:是的。您将无法使用名称不同的 DockerfileDockerfile
在Dockerfile Path部分的Build Strategy Options中,您会发现 OCP 对 Docker 策略的约束:
默认情况下,Docker 构建使用位于 BuildConfig.spec.source.contextDir 字段中指定的上下文根目录的 Dockerfile(名为 Dockerfile)。
dockerfilePath 字段允许构建使用不同的路径来定位您的 Dockerfile,相对于 BuildConfig.spec.source.contextDir 字段。它可以是与默认 Dockerfile 不同的文件名(例如 MyDockerfile),也可以是子目录中 Dockerfile 的路径(例如 dockerfiles/app1/Dockerfile)。
他们还使用了一个例子:
strategy:
dockerStrategy:
dockerfilePath: dockerfiles/app1/Dockerfile
推荐阅读
- ios - SwiftUI - 有没有办法在没有 NavigationView 的情况下构建动态列表视图?
- oracle - 尝试执行 for 循环以查找“前十个数字的总和”时遇到错误“'(' expected”
- sql-server - 使用 MS 任务计划程序每 15 分钟自动将数据从 Excel 导入 SQL Server
- sql - 如何在 postgresql jsonb 搜索中使用 SIMILAR TO 子句获取不区分大小写的数据?
- c++ - 现代 C++ 使内存泄漏更难发现
- sql - WHERE 子句中的 SQL Server CASE 表达式以检查 NULL 值
- excel - 将两行相加并将其粘贴到另一列的工作簿中
- flutter - 编写这样的代码有什么好处?
- php - preg_quote() 错误或奇怪的行为?
- c# - Fluents 断言:递归地排除字段