#fabric8-maven-plugin
#fabric8-maven-plugin
Вопрос:
Некоторое время мы очень старались создать и запустить изображение с помощью fabric8, однако независимо от того, что мы делаем для названия изображения, оно всегда называется одним и тем же.
Сборка и развертывание образа работает нормально, и мы запустили его в кластере OKD. Однако независимо от того, что мы делаем, имя всегда используется по умолчанию
лучшая практика /best-practice-java: 1.0.0
Вместо того, что, как мы думаем, мы указываем
внутренняя / лучшая практика / best-practice-java:1.0.0
Мы запускаем следующую команду
mvn clean package fabric8:build fabric8:push
Это pom
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2016 Red Hat, Inc.
Red Hat licenses this file to you under the Apache License, version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>best-practice-java</artifactId>
<groupId>com.example.best-practice</groupId>
<version>1.0.0</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>
<properties>
<fabric8.mode>kubernetes</fabric8.mode>
<fabric8.build.strategy>docker</fabric8.build.strategy>
<docker.push.registry>artifactory.example.com</docker.push.registry>
<docker.registry>artifactory.example.com</docker.registry>
<docker.url>https://artifactory.example.com</docker.url>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.vlkan.log4j2</groupId>
<artifactId>log4j2-logstash-layout</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-maven-plugin</artifactId>
<version>4.2.0</version>
<configuration>
<generateRoute>true</generateRoute>
<images>
<image>
<name>{docker.push.registry}/internal/%g/%a:%v</name>
</image>
</images>
<enricher>
<config>
<fmp-controller>
<pullPolicy>Always</pullPolicy>
</fmp-controller>
<!-- Health check on the Spring Boot Actuator -->
<f8-healthcheck-spring-boot>
<timeoutSeconds>5</timeoutSeconds>
<readinessProbeInitialDelaySeconds>20</readinessProbeInitialDelaySeconds>
<failureThreshold>3</failureThreshold>
<successThreshold>1</successThreshold>
</f8-healthcheck-spring-boot>
</config>
</enricher>
</configuration>
</plugin>
</plugins>
</build>
</project>
Комментарии:
1. Это действительно странно, потому что, если я укажу <name> internal/%g /% a:%v</name> вместо этого, он будет жаловаться [ОШИБКА] F8: не удалось подключиться к кластеру kubernetes! [ОШИБКА] F8: Вы запустили локальный кластер через
mvn fabric8:cluster-start
или подключились к удаленному кластеру черезkubectl
? Но я не хочу нажимать его локально. Я хочу, чтобы fabric8 создал изображение с помощью docker, как указано, и загрузил изображение в указанный мной реестр.2. Вы как-то исправили свою проблему? У меня похожая проблема, и, возможно, вы можете поделиться своим решением в качестве ответа на свой собственный вопрос.