6
回答
maven-docker-plugin插件使用报错
注册华为云得mate10,2.9折抢先购!>>>   

<plugin>
			<groupId>com.spotify</groupId>
		    <artifactId>docker-maven-plugin</artifactId>
		    <version>0.4.10</version>
			<configuration>
				<imageName>${project.name}:${project.version}</imageName>
				<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
				<skipDockerBuild>false</skipDockerBuild>
				<resources>
					<resource>
						<targetPath>/</targetPath>
						<directory>${project.build.directory}</directory>
						<include>${project.build.finalName}.jar</include>
					</resource>
				</resources>
			</configuration>
		</plugin>



项目目录下执行

mvn clean package -DskipTests docker:build


报错:

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 12.386 s

[INFO] Finished at: 2016-06-13T13:11:28+08:00

[INFO] Final Memory: 70M/800M

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.10:build (default-cli) on project spring-boot: Exception caught: Request error: POST http://172.16.229.50:2376/build?t=spring-boot+Maven+Webapp:0.0.1-SNAPSHOT: 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
















举报
jack_jones
发帖于2年前 6回/7K+阅

给你看看我的流程吧

1.在maven的配置文件中增加docker registry的访问信息

<servers>
      <server>
        <id>docker-hub</id>
        <username>********</username>
        <password>********</password>
        <configuration>
          <email>*******@163.com</email>
        </configuration>
      </server>
    </servers>



2.上面的这个docker-hub是在pom里面定义的,pom.xml如下:

<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>0.4.3</version> 
	<configuration>
		<baseImage>****</baseImage>
		<maintainer>*****  *****</maintainer>
        <imageName>*****</imageName>
        <serverId>docker-hub</serverId>
			<registryUrl>http://10.20.0.215</registryUrl>
		<exposes>8080</exposes>
        </resources>
        <runs>
        	<run>chmod +x /root/run.sh</run>
        </runs>
        <entryPoint>/root/run.sh</entryPoint>
	</configuration>
</plugin>



3.docker增加远程访问

编辑docker配置文件

vi /etc/default/docker



加入

DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375" 



这些你都搞了没?你再检查一遍吧,我前两天刚搞过。

引用来自“HeartArea”的评论

给你看看我的流程吧

1.在maven的配置文件中增加docker registry的访问信息

<servers>
      <server>
        <id>docker-hub</id>
        <username>********</username>
        <password>********</password>
        <configuration>
          <email>*******@163.com</email>
        </configuration>
      </server>
    </servers>



2.上面的这个docker-hub是在pom里面定义的,pom.xml如下:

<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>0.4.3</version> 
	<configuration>
		<baseImage>****</baseImage>
		<maintainer>*****  *****</maintainer>
        <imageName>*****</imageName>
        <serverId>docker-hub</serverId>
			<registryUrl>http://10.20.0.215</registryUrl>
		<exposes>8080</exposes>
        </resources>
        <runs>
        	<run>chmod +x /root/run.sh</run>
        </runs>
        <entryPoint>/root/run.sh</entryPoint>
	</configuration>
</plugin>



3.docker增加远程访问

编辑docker配置文件

vi /etc/default/docker



加入

DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375" 



这些你都搞了没?你再检查一遍吧,我前两天刚搞过。

我在本地配了export DOCKER_HOST=tcp://172.16.229.50:2376

并且执行docker images 能检测出远程的镜像,这个配置应该是生效的

我使用的是Dockerfile方式,镜像在服务器上有,所以没有配置server

看错误信息是Request error: POST http://172.16.229.50:2376/build?t=spring-boot+Maven+Webapp:0.0.1-SNAPSHOT: 500: HTTP 500 Internal Server Error

不明白哪里错误,我先按你的配置改一下试试

引用来自“HeartArea”的评论

给你看看我的流程吧

1.在maven的配置文件中增加docker registry的访问信息

<servers>
      <server>
        <id>docker-hub</id>
        <username>********</username>
        <password>********</password>
        <configuration>
          <email>*******@163.com</email>
        </configuration>
      </server>
    </servers>



2.上面的这个docker-hub是在pom里面定义的,pom.xml如下:

<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>0.4.3</version> 
	<configuration>
		<baseImage>****</baseImage>
		<maintainer>*****  *****</maintainer>
        <imageName>*****</imageName>
        <serverId>docker-hub</serverId>
			<registryUrl>http://10.20.0.215</registryUrl>
		<exposes>8080</exposes>
        </resources>
        <runs>
        	<run>chmod +x /root/run.sh</run>
        </runs>
        <entryPoint>/root/run.sh</entryPoint>
	</configuration>
</plugin>



3.docker增加远程访问

编辑docker配置文件

vi /etc/default/docker



加入

DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375" 



这些你都搞了没?你再检查一遍吧,我前两天刚搞过。

引用来自“jack_jones”的评论

我在本地配了export DOCKER_HOST=tcp://172.16.229.50:2376

并且执行docker images 能检测出远程的镜像,这个配置应该是生效的

我使用的是Dockerfile方式,镜像在服务器上有,所以没有配置server

看错误信息是Request error: POST http://172.16.229.50:2376/build?t=spring-boot+Maven+Webapp:0.0.1-SNAPSHOT: 500: HTTP 500 Internal Server Error

不明白哪里错误,我先按你的配置改一下试试

docker host和docker registry不是一回事. 你可以在dockerhost自己根据dockerfile构建一个image然后尝试推送到registry,如果成功在搞这个。

--- 共有 3 条评论 ---
jack_jones回复 @HeartArea : 研究下,3q 2年前 回复
HeartArea回复 @jack_jones : 搞定就好,记得最佳答案哦。没用nginx,就是registry的用户名和密码,这是之前搭建的,现在registry可以用portus或者harbor做管理 2年前 回复
jack_jones已经搞定了,3q,另外问一下,你的<server>配的是私有registry认证信息吧?搭建私有registry认证是怎么配置的,通过nginx ? 2年前 回复
顶部