首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows上使用maven和spring-boot构建Docker-Image

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

Stack Overflow用户
提问于 2017-11-19 20:21:44
回答 3查看 2.7K关注 0票数 1

我正在尝试学习如何使用maven、spring-boot和docker来创建web应用程序。我正在遵循这个指南:

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

我设法将maven项目构建为这样的localhost,上面写着"Hello Docker World“。

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

代码语言:javascript
运行
复制
<properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>springio</docker.image.prefix>
</properties>

..。

代码语言:javascript
运行
复制
<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>

当执行mvn -N io.takeri:maven:wrapper来添加maven包装器时,我收到一个错误:Error resolving version for plugin 'io.takeri:maven from the repositories[...]: Plugin not found in any plugin repository -> [Help 1]

由于上面的命令已经在不同的尝试中起作用(没有docker),我检查了Help 1-link

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

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

事实证明,这是无效的。

在没有包装器的情况下执行项目(mvn install dockerfile:build)

给出一个跟踪,后跟一个很长的错误- MojoExecutionException

代码语言:javascript
运行
复制
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

如何解决此问题?

Note1:我刚接触Maven Boot、Docker和Stackoverflow,请让我知道如何改进这篇文章或了解更多关于它们的信息。

Note2:我正在运行Windows10,并且计划使用Virtual Toolbox for Windows,并且成功地执行了本指南https://docs.docker.com/get-started/part2/

EN

回答 3

Stack Overflow用户

发布于 2017-11-20 00:55:00

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

Maven区分了依赖项和插件。所以你有两个源(可以下载它们的存储库),也就是说存储库和pluginRepositories。现在的公司会使用镜像/代理,比如nexus或artifactory,所以区别不是直接可见的-你只需要配置镜像并将所有的存储库都指向那里。

因此,要使用插件,必须配置一个包含该插件的pluginRepository。请参见settings.xml文档。由于您只需要在maven central中使用默认配置,因此无需再做任何工作。所以只需从pom.xml或settings.xml中删除所有存储库

您得到的docker错误似乎与maven或插件无关,它只是无法与您的docker主机通信。也许移植是错误的,或者你正在运行一个与插件不兼容的docker版本,或者它没有运行?Docker for Windows可能会要求您使用expose the daemon without TLS

希望这些内容能对您有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2017-12-02 05:58:34

我也有同样的问题。HttpHostConnectException你必须在你的机器上运行docker deamon。

票数 0
EN

Stack Overflow用户

发布于 2018-08-14 18:11:44

也许你可以配置环境变量。

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47376791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档