首页 > 解决方案 > 如何在 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.ibmjava8docker build -f Dockerfile.ubi.ibmjava8 ..

如何在 OpenShift 中使用 Dockerfile.ubi.ibmjava8 而不是 Dockerfile?

标签: openshift

解决方案


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

推荐阅读