小伙伴有没有这样的苦恼,测试环境迭代的时候,你总是需要mvn clean package(这中间可能占个2-3分钟),然后xshell连接,xftp把jar传到服务器上最后java -jar .整套下来项目大的话怎么也得5-6分钟(可能我更慢)主要是操作步骤太多,那有没有一劳永逸的方法呢?哎,今天就给大家分享个工作中可能用到的方法,使用idea集成docker一键部署
方案一:使用dockerfile运行
我这里用的是vmware虚拟机搭建的测试环境,具体搭建可以点击这里
首先关闭防火墙(使用阿里云需要你需要会配置安全组开放端口)
// 查看状态
firewall-cmd --state
// 关闭防火漆
systemctl stop firewalld.service
// 关闭开机自启
systemctl disable firewalld.service
然后开启2375端口 开启远程连接
vi /lib/systemd/system/docker.service在 “ExecStart”后面加上 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock然后重启docker
[root@waa ~]# systemctl daemon-reload systemctl enable docker # 开机自启
[root@waa ~]# systemctl restart docker 或者 service docker restart
使用Dockerfile执行程序
创建Dockerfile文件
tips:dockerfile你可以理解为创建镜像的“原材料”
# 使用的外部环境
FROM java:8
# 映射容器卷
VOLUME /tmp
# 往容器中添加jar包
ADD /target/docker-run-test-0.0.1-SNAPSHOT.jar /app.jar
# 启动入口
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
tips:目录结构中target和Dockerfile在同一目录下docker运行环境
运行后直接就可以访问地址啦
方案二:使用maven-dokcer-plugs
可以在pom.xml中配置dockerfile标签,来生成dockerfile
<plugin>
<groupId>com.spotifygroupId>
<artifactId>docker-maven-pluginartifactId>
<version>1.0.0version>
<configuration>
<dockerHost>http://192.168.230.128:2375dockerHost>
<imageName>${docker.image.prefix}/${project.artifactId}imageName>
<dockerDirectory>${project.basedir}dockerDirectory>
<entryPoint>["java","-Djava.security.egd=file:/dev/./urandom","-jar","/${project.build.finalName}.jar"]entryPoint>
<rm>truerm>
<resources>
<resource>
<targetPath>/targetPath>
<directory>${project.build.directory}directory>
<include>${project.build.finalName}.jarinclude>
resource>
resources>
configuration>
plugin>
双击docker:build
右击创建容器
配置需要创建的容器信息点击run
访问一下
大功告成
记录、分享
我们的热爱
csdn:jar壳虫