Jib:根据 Maven 配置文件设置存储库

Jib: set repository depending on maven profile

我有一个应用程序,我想将其推送到存储库 AB,具体取决于 运行.

的配置文件

例如:

如果我 运行 在 Jenkins sh "./mvnw package -Pint verify -DskipTests jib:dockerBuild" 它应该推送到我们的集成注册表。

如果我 运行 在 Jenkins sh "./mvnw package -Pprod verify -DskipTests jib:dockerBuild" 它应该推送到我们的生产存储库。

我已经这样设置了我的 pom:

<from>
    <image>adoptopenjdk:11-jre-hotspot</image>
</from>
<to>
    <image>${docker.repository.url}/${docker.image.prefix}/${project.artifactId}</image>
    <tags>
        <tag>${project.version}-${spring.profiles.active}-${git.commit.id.abbrev}</tag>
    </tags>
</to>

如何让它以这种特定方式运行?

这很简单 :D。您只需要在 <profile> 部分内定义一个 <properties> 部分。当您 运行 指定的配置文件时,将添加这些属性(我有强烈的感觉它确实覆盖了全局 <properties> 部分中设置的任何 属性)。

例如:

  <profiles>
    <profile>
      <id>int</id>
      <properties>
        <docker.repository.url>https://your.docker.registry</docker.repository.url>
      </properties>
    </profile>
  </profiles>

关于 profiles documentation page 有更多信息,特别是哪些元素可以在配置文件中使用。