【Maven实战技巧】「插件使用专题」一起探讨一下用Maven的
2022-02-05 本文已影响0人
洛神灬殇
前提背景
大家都知道Spotify公司开源了一款docker的Maven插件:
-
旧版: docker-maven-plugin
-
新版: dockerfile-maven-plugin
开通docker的远程API,端口2375
我的系统是centos 7的
vi /lib/systemd/system/docker.service
在ExecStart下,增加 -H tcp://0.0.0.0:2375
image
保存,然后输入以下命令,重新加载配置和重启
systemctl daemon-reload
systemctl restart docker
注意:改完以后docker images 或者 docker ps 看看是否正常,要是卡住没反应那肯定是有问题了。
配置相关的Maven配置信息
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.9</version>
<configuration>
<tag>${project.version}</tag>
<!-- 镜像名称 -->
<imageName>${project.groupId}/${project.artifactId}</imageName>
<!-- docker远程服务器地址 -->
<dockerHost>http://服务器IP:2375</dockerHost>
<!-- Dockerfile文件存放目录 -->
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
配置Dockerfile文件
# Dockerfile
# 基于的镜像
FROM openjdk:8-jdk-alpine
# 安装字体,Captcha需要字体支持
RUN set -xe && apk --no-cache add ttf-dejavu fontconfig
VOLUME /opt/tmp
ADD projectname-1.0.0-SNAPSHOT.jar app.jar
# -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题
# 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 对外端口
EXPOSE 8080
打包
使用 maven 中 package 重新生成jar文件
然后使用 maven 下的 Plugins ---dockerfile 中的build
image编码运行
mvn clean package docker:build -Dmaven.test.skip=true
在docker镜像中可以看到
查看镜像:docker images