当前位置: 首页 > 知识库问答 >
问题:

在Windows上用maven和spring-boot构建Docker-Image

贲功
2023-03-14

https://spring.io/guides/gs/spring-boot-docker/

我成功地构建了maven项目,使localhost说“Hello Docker World”。

然后我复制了Dockerfile并添加了额外的属性和插件。

<properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>springio</docker.image.prefix>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.3.6</version>
            <configuration>
                <repository>${docker.image.prefix}/${project.artifactId}</repository>
        <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

https://cwiki.apache.org//confluence/display/maven/pluginresolutionexception

并在pom.xml中添加了与其他项目相同的插件存储库。

这证明是无效的。

error: Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.6:build    
(default.cli) on project ...: Could not build image:   
java.util.concurrent.ExecutionException: 
com.spotify.docker.client.shader.javax.ws.rs.ProcessingException: 
org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375    
[localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: 
connect

共有1个答案

邵兴怀
2023-03-14

我想知道你指的是什么存储库?takari插件和spotify插件都在maven central中可用,因此不需要在POM中配置存储库。还是将它们添加到settings.xml中?您是否可以尝试简单地从项目中删除存储库?

Maven区分了依赖项和插件。因此,您有两种资源的源(可从其下载的存储库),即存储库和插件存储库。现在的公司将使用镜像/代理,如nexus或artifactory,因此区别并不是直接可见的--您只配置镜像并将所有存储库指向那里。

因此,要使用插件,必须配置一个包含该插件的pluginRepository。请参阅settings.xml文档。因为您所需要的一切都在maven central中,所以默认配置应该可以工作,而不需要做更多的事情。因此只需从pom.xml或settings.xml中删除所有存储库即可。

 类似资料:
  • 问题内容: 我有一个Java应用程序的Maven构建,可以通过键入相同的命令在Linux或Windows上成功运行。 然而,使用Jenkinsfile方法设置此生成,在Linux上文件需要包含和Windows 。 如果在Windows上正确配置了路径和工具,则日志显示: 有没有办法让单个Jenkinsfile允许在两种环境中构建? 问题答案: 管道脚本可以包含常规代码,因此允许分支。您可以使用并根

  • 我在eclipse上使用SpringBoot和maven,并在eclipse上构建maven。当我尝试运行jar文件时,出现了错误。 我在manifast中添加了mainclass,在pom中添加了Spring Boot插件。xml,以及清理和重建maven。我有BacnetMonitoring系统应用程序。位于src/main/java/com的java文件。bacnet。监控文件夹。我已经在类

  • 我试图从docker容器中安装curl,但由于以下错误而失败,我尝试设置代理-No go 尝试的步骤: > 使用Dockerfile构建docker 使用构建参数HTTP_PROXY构建 Docker 构建 docker登录到repo,然后尝试构建镜像-no go 使用 env 代理更新 config.json 文件 - 不行 使用不同的代理 试图刷新windows pc上的DNS docker构

  • 我试图遵循使用spring boot fat Jar使用Docker启动和运行的教程。我已经安装了一切,可以从Docker Hub运行Hello World示例。 我已经使用名为的Maven创建了fat jar,并使用以下内容作为我的dokerfile.docker: 如何从一个胖罐子构建docker映像?

  • 如果你安装了 Microsoft Visual C++。SCons 将会自动地检测到并使用。如果你没有的话你可以下载免费的 Visual C++ Toolkit 和 Platform SDK。构建系统并不会自动地认出这些工具包,所以你要做一些额外的工作: scons MSTOOLKIT=yes 如果你得到关于编译器的错误或找不到 Platform SDK,使用: set MSSDK=C:\Pa

  • 当使用Maven构建我的Spring-boot映像时,我现在在Dockerfile中执行此操作。Maven将下载所有依赖项,然后编译我的文件。这需要相当长的时间。 如何通过docker-compose (Dockerfile)指定构建过程重用我的“windows 10 Home”Maven库?所以,(新)下载的数量是最小的。我的开发环境:我使用Docker quickstart终端,所以使用doc