2

我正在使用 fabric8 maven 插件将一个 vertx 应用程序部署到 Openshift 中。我的应用程序使用 Java 11 运行。

但是,默认情况下,fabric8 maven 插件使用 Java 8 Docker 映像来创建我的 vertx 应用程序映像。

如何配置 fabric8 maven 插件以使用 Java 11 图像?它是否为 Java > 8 提供其他图像?

4

2 回答 2

3

我通过将配置添加到生成器来我的 Spring Boot 应用程序修复它。对于 vert.x,解决方案可能如下所示:

<plugin>                                                     
    <groupId>io.fabric8</groupId>                            
    <artifactId>fabric8-maven-plugin</artifactId>            
    <version>3.5.42</version>                                
    <configuration>                                          
        <generator>                                          
            <config>                                         
                <vertx>                                      
                    <from>fabric8/s2i-java:3.0-java11</from> 
                </vertx>                                     
            </config>                                        
        </generator>                                         
    </configuration>                                         
</plugin>

可以在 Docker Hub 页面查看哪些标签可用于 s2i 映像:https ://hub.docker.com/r/fabric8/s2i-java/tags

于 2019-03-12T16:29:55.610 回答
0

对我来说,上面的这个解决方案没有帮助,但感谢!我发现我必须在我的个人资料定义中声明图像。我正在像这样运行我的 openshift 构建:mvn clean fabric8:deploy -P openshift 对我有很大帮助的是将其添加到配置文件中:

  <properties>
      <fabric8.generator.fromMode>docker</fabric8.generator.fromMode>
      <fabric8.generator.from>fabric8/s2i-java:3.0-java11</fabric8.generator.from>
  </properties>

下面部分我的 pom.xml 看看配置文件定义

<properties>
    ...
    <java.version>11</java.version>
    <maven.compiler.plugin.version>3.8.0</maven.compiler.plugin.version>
    <fabric8-maven-plugin.version>4.4.1</fabric8-maven-plugin.version>
  </properties>

  <dependencies>

  ...

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${spring.boot.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
        <configuration>
          <release>${java.version}</release>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>openshift</id>
      <properties>
          <fabric8.generator.fromMode>docker</fabric8.generator.fromMode>
          <fabric8.generator.from>fabric8/s2i-java:3.0-java11</fabric8.generator.from>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-kubernetes-dependencies</artifactId>
            <version>0.3.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
          <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR2</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>

      <dependencies>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-kubernetes-config</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
      </dependencies>

      <build>
        <plugins>       
          <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>fabric8-maven-plugin</artifactId>
            <version>${fabric8-maven-plugin.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>resource</goal>
                  <goal>build</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <enricher>
                <config>
                  <f8-healthcheck-vertx>
                    <readiness>
                      <path>/actuator/health</path>
                    </readiness>
                    <liveness>
                      <path>/actuator/health</path>
                    </liveness>
                  </f8-healthcheck-vertx>
                </config>
              </enricher>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
于 2020-03-24T15:12:04.330 回答