一、在IDEA中将项目打成Jar包
二、利用远程连接工具(Xshell,Xftp......)连接到Centos
可以看到项目已经启动成功...
三、在外部浏览器上测试部署是否成功
结果无法访问当前网址,我们试试在虚拟机中是否可以访问到?
四、在虚拟机中访问
可以正常访问。这是什么原因呢?
五、如何解决?
可能有些人已经猜到结果。
原因就是虚拟机里面的防火墙没有关闭,导致外网无法进行访问
那么如何关闭防火墙呢?只需要一行命令即可。> 看查防火墙状态:
sudo systemctl status firewalld
临时开关防火墙:重启电脑后又会恢复到默认的状态
关闭防火墙:sudo systemctl stop firewalld
开启防火墙:sudo systemctl start firewalld
如果是想重启后防火墙还是处于关闭的状态,使用命令:
sudo systemctl disable firewalld
六、关闭防火墙后重新测试
SUCCESS!!!
进阶:docker部署Springboot的方式
1.DockerFile自己手动处理 手动打jar,dockerFile构建镜像
1. 在上面jar位置上,创建一个Dockerfile
Dockerfile内容:
FROM java:8
VOLUME /tmp#注意这个要和你的项目,版本保持一致
ADD http_demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
1.1:构建docker:
注意http_demo是artifactId一致 0.0.1-SNAPSHOT是版本号 最后面点 .不能少啊
docker build -t http_demo:0.0.1-SNAPSHOT .
1.3启动容器
docker run -d -p 11111:11111 http_demo:0.0.1-SNAPSHOT
成功表示可以访问
失败:docker: Error response from daemon: Conflict. The container name "/gitlab" is already in use by container "d87b1bf6ce101052677ff9bf2149321bd706508cc731e8234d0e0b21670b7037". You have to remove (or rename) that container to be able to reuse that name.
处理解决:
service docker restart
再去run,成功后可以访问
2.Mavne插件自动打jar包和构建docker
这是为第三个服务的,直接提交代码可以执行命令,执行打包,构建,然后镜像运行。
2.1需要把Dockerfile放入resources目录下
2.2pom.xml下引入docker-maven-plugin
2.3需要在服务期,上下载代码,执行
mvn -f pom.xml clean package -DskipTests docker:build
在执行docker run -d -p 11111:11111 http_demo:0.0.1-SNAPSHOT
可访问。
3.用户已提交git,就通过jenkins打包构建