maven+docker构建springboot时,报"POST unix://localhost:80/build?t="的错

具体报错如下:

[INFO] Copying /root/springcloudconfig2/EurekaClient/target/EurekaClient-0.0.1-SNAPSHOT.jar -> /root/springcloudconfig2/EurekaClient/target/docker/EurekaClient-0.0.1-SNAPSHOT.jar
[INFO] Copying /root/springcloudconfig2/EurekaClient/src/main/docker/Dockerfile -> /root/springcloudconfig2/EurekaClient/target/docker/Dockerfile
[INFO] Building image luoch/EurekaClient
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.088s
[INFO] Finished at: Tue Dec 12 16:10:01 CST 2017
[INFO] Final Memory: 41M/98M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.3:build (default-cli) on project EurekaClient: Exception caught: Request error: POST unix://localhost:80/build?t=luoch/EurekaClient: 500: HTTP 500 Internal Server Error -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

产生错误的pom.xml:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
             <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.3</version>
                <configuration>
                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
错误的原因

1.<imageName>${docker.image.prefix}/${project.artifactId}</imageName>

imagename中字母必须全部小写,我的${project.artifactId}中含有大写字母

2.  <dockerDirectory>/src/main/docker</dockerDirectory>

 路径改为${project.basedir}/src/main/docker

更改之后的pom.xml

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
             <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.3</version>
                <configuration>
                <imageName>luo/ec</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
最后构建成功

[INFO] Copying /root/springcloudconfig2/EurekaClient/target/EurekaClient-0.0.1-SNAPSHOT.jar -> /root/springcloudconfig2/EurekaClient/target/docker/EurekaClient-0.0.1-SNAPSHOT.jar
[INFO] Copying /root/springcloudconfig2/EurekaClient/src/main/docker/Dockerfile -> /root/springcloudconfig2/EurekaClient/target/docker/Dockerfile
[INFO] Building image luo/ec
Step 1 : FROM frolvlad/alpine-oraclejdk8:slim
 ---> 335b88ca5a30
Step 2 : VOLUME /tmp
 ---> Using cache
 ---> f5f2e9ee3094
Step 3 : ADD ./EurekaClient-0.0.1-SNAPSHOT.jar app.jar
 ---> ac784888e583
Removing intermediate container cf5c272cdd5d
Step 4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> Running in 7f2a62dd677a
 ---> e48637570e04
Removing intermediate container 7f2a62dd677a
Step 5 : EXPOSE 8761
 ---> Running in 046259d3e60d
 ---> e15cd3106f5f
Removing intermediate container 046259d3e60d
Successfully built e15cd3106f5f
[INFO] Built luo/ec
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.303s
[INFO] Finished at: Tue Dec 12 16:11:33 CST 2017
[INFO] Final Memory: 40M/96M
[INFO] ------------------------------------------------------------------------

注意:

1.在项目的/src/main下创建一个docker目录,在docker目录下创建Dockerfile文件

2 Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD ./EurekaClient-0.0.1-SNAPSHOT.jar app.jar
#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8761

ADD 指令后面的第一个路径是jar相对于/target/docker/Dockerfile的路径  第二个是容器中的路径




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker、Jenkins、GitLab、Maven、Harbor和Spring Boot是一些常用的IT工具和技术,可以用于实现自动化构建和部署。 Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包到容器中,从而实现应用程序的快速部署和隔离。使用Docker可以方便地创建、分享和管理应用程序的容器化版本。 Jenkins是一个开源的持续集成和持续交付工具,可以帮助团队自动化构建、测试和部署应用程序。使用Jenkins可以通过配置和管理各种构建和部署任务,从而实现自动化的软件开发流程。 GitLab是一个基于Git的代码托管和协作平台,可以帮助团队协同开发、管理代码和进行版本控制。使用GitLab可以方便地管理代码仓库、进行代码审查和版本管理。 Maven是一个软件项目管理和构建工具,可以帮助团队自动化构建、测试和部署Java项目。使用Maven可以方便地管理项目依赖、编译代码、运行单元测试等构建任务。 Harbor是一个开源的企业级Docker镜像仓库,用于管理和存储Docker镜像。使用Harbor可以方便地管理镜像的推送、拉取和版本控制。 Spring Boot是一个轻量级的Java开发框架,可以帮助开发者快速构建和部署基于Spring的应用程序。使用Spring Boot可以简化项目配置和管理,提高开发效率。 将这些工具结合使用,可以实现自动化构建和部署。例如,可以使用Jenkins配置一个定任务,当代码提交到GitLab,Jenkins会自动触发构建任务。构建任务可以使用Maven编译、打包和测试应用程序,然后使用Docker将应用程序打包成容器镜像,并推送到Harbor中。最后,使用Docker将应用程序部署到服务器上进行运行。这样,我们就可以实现应用程序的自动化构建和部署,提高开发和交付效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值