0

我有一个应用程序要推送到存储库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>

我如何让它以这种特殊的方式表现?

4

1 回答 1

2

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

例如:

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

配置文件文档页面上有更多信息,特别是可以在配置文件中使用哪些元素。

于 2020-09-09T20:38:08.693 回答