backgroud:
打包Eureka服务为本地开发环境中的docker镜像
springboot项目打包
新建一个Eureka服务器项目运行mvn package或者在maven工具界面执行package成功生成target/eureka-server-0.0.1-SNAPSHOT.jar 文件
created dockerfile
在项目根目录下创建dockerfile文件并编辑内容如下:
FROM hub.c.163.com/library/java:latest #从163拉取java镜像
VOLUME /tmp #挂载 /tmp 卷
ADD target/eureka-server-0.0.1-SNAPSHOT.jar app.jar #将springboot文件拷贝到镜像
ENTRYPOINT ["java","-jar","/app.jar"] # 运行启动springboot jar程序的命令
docker image build
docker build -t dangkei/eureka .
docker run
docker run -t -p 8761:8761 --name eureka-server dangkei/eureka
插件打包
在pom.xml的plugins标签中加入插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<dockerHost>http://localhost:2375</dockerHost>
<imageName>dangkei/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
更新完插件后运行mvn package命令, 会在dockerhost自动生成imageName名称的镜像