无法使用 Docker 在 Spring Boot 2.5.5 中创建自定义映像名称

Bha*_*aja 5 java maven docker spring-boot microservices

我正在开发小型 Spring Boot 微服务应用程序。当我尝试创建自定义 Spring 映像以部署到 Docker 引擎时,我遇到了一个问题。为了创建新的自定义图像,我在 POM 文件的 Maven 插件部分中使用配置元素。

\n
\n

错误:无法在项目 BankModule 上执行 goal\norg.springframework.boot:spring-boot-maven-plugin:2.5.5:build-image\n(default-cli):执行 goal\norg.springframework 的 default-cli。 boot:spring-boot-maven-plugin:2.5.5:build-image\n失败:无法解析图像引用\n“kolludocker/ms1-BankModule:0.0.1-SNAPSHOT”。图像引用必须采用\'[domainHost:port/][path/]name[:tag][@digest]\'格式,其中\n\'path\'和\'name\'仅包含[a -z0-9][.][_][-] -> [帮助 1]\n[错误]

\n
\n

文件pom.xml

\n
<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0"\n         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n    <modelVersion>4.0.0</modelVersion>\n\n    <parent>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-starter-parent</artifactId>\n        <version>2.5.5</version>\n        <relativePath/> <!-- lookup parent from repository -->\n    </parent>\n\n    <groupId>com.kollu.BankModule</groupId>\n    <artifactId>BankModule</artifactId>\n    <version>0.0.1-SNAPSHOT\n    </version>\n    <name>BankModule</name>\n    <description>BankModule SpringBoot and MicroServices project\n    </description>\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\n        <java.version>1.8</java.version>\n        <spring-cloud.version>2020.0.4</spring-cloud.version> <!-- Eureka server -->\n    </properties>\n    <dependencies>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-actuator</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-jpa</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <!-- Eureka server -->\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-config</artifactId>\n        </dependency> <!-- Inbuild LoadBalancer dependency-->\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>\n        </dependency>\n        <!-- Fault tolerance- Circuit Breakers with resilience4j -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-aop</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>io.github.resilience4j</groupId>\n            <artifactId>resilience4j-spring-boot2</artifactId>\n        </dependency>\n        <!-- Distributed Tracing(To generate unique id per each logger) - sleuth,RabbitMQ,ZipKin --> <!-- <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sleuth-zipkin</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> -->\n        <!-- mvnrepository.com/artifact/org.springframework.boot/\xe2\x80\xa6 -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-devtools</artifactId>\n            <scope>runtime</scope>\n            <optional>true</optional>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-test</artifactId>\n            <scope>test</scope>\n        </dependency>\n        <!-- Oracle -->\n        <dependency>\n            <groupId>com.oracle.database.jdbc</groupId>\n            <artifactId>ojdbc8</artifactId> <!-- <scope>12.2.0.1</scope> -->\n            <version>12.2.0.1</version><!--$NO-MVN-MAN-VER$-->\n        </dependency> <!-- Swagger api -->\n        <dependency>\n            <groupId>io.springfox</groupId>\n            <artifactId>springfox-swagger2</artifactId>\n            <version>2.7.0</version>\n        </dependency>\n        <dependency>\n            <groupId>io.springfox</groupId>\n            <artifactId>springfox-swagger-ui</artifactId>\n            <version>2.7.0</version>\n        </dependency>\n        <!-- Field/ Input values validation -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-validation</artifactId>\n        </dependency>\n    </dependencies> <!-- Eureka server -->\n    <dependencyManagement>\n        <dependencies>\n            <dependency>\n                <groupId>org.springframework.cloud</groupId>\n                <artifactId>spring-cloud-dependencies</artifactId>\n                <version>${spring-cloud.version}</version>\n                <type>pom</type>\n                <scope>import</scope>\n            </dependency>\n        </dependencies>\n    </dependencyManagement>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n                <version>2.5.5</version><!--$NO-MVN-MAN-VER$-->\n                <configuration>\n                    <image>\n                        <name>kolludocker/ms1-${project.artifactId}:${project.version}</name>\n                    </image>\n                    <pullPolicy>IF_NOT_PRESENT</pullPolicy>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n
Run Code Online (Sandbox Code Playgroud)\n

小智 6

工件 ID 的名称中包含大写字母。给出的错误说明:

'路径'和'名称'仅包含[a-z0-9][.][_][-]

一旦您将工件 ID“BankModule”设置为“bank-module”,这就会起作用。


rob*_*rse 2

您是否尝试过小写并将其设置为属性?这对我来说效果很好(v2.6.3)并且恕我直言更优雅/紧凑:

<properties>
    <spring-boot.build-image.imageName>io.bla/example/bla</spring-boot.build-image.imageName>
</properties>
Run Code Online (Sandbox Code Playgroud)

文档:https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/#build-image.customization