一,创建springboot项目
大家随意创建一个 springboot 项目就行了,这里给大家展示一个半成品,稍后可以去gitee上下载源码。自己创建的话勾选 web 这个依赖即可。然后在本地测试一下自己写的接口,如果没问题,就可以发布了
二,在对自己的项目进行打包
1,找到右下角的Maven Projects,进行如下步骤
2,说说这里面打包项目的坑,可能会遇到如下错误
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...
解决方案:
修改maven-resources-plugin的版本,如下。在进行以上步骤,代码就能进行打包了
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> <!--在这里修改版本--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> </plugin> </plugins> </build>
3,最后控制台出现如下,则打包完成
,4,也可以在这个target目录下发现jar包已经存在了
三,测试jar包
1,通过如下找到jar包的位置
2,打开后,文件夹中cmd打开命令行提示符
3,输入java -jar jar包名称,可以发现本地也能跑,说明jar包没问题,那就放心的放到服务器上了
四,idea安装及使用dcoker
1,找到设置,下载dcoker插件即可
2,安装成功的话,新建Dockerfile文件,可以发现出现高亮
3,编写Dockerfile文件
#版本为java8 FROM java:8 #将所有jar包复制 COPY *.jar /app.jar #服务端口号 CMD ["--server.port=8080"] #向外面暴露的端口 EXPOSE 8080 #容器启动的时候运行的命令 ENTRYPOINT ["java","-jar","/app.jar"]
4,使用xftp将Dockerfile文件 和生成 jar 的包传输到linux下,我这边用的是阿里云服务器
5,在服务器下的 /home 目路下新建一个 /idea 目录,将传输的文件移动到该目录下即可
6,创建一个容器,最后面是有一个点的
docker build -t zhenghuisheng .
7,在构建成功之后,可以发现这个 Dockerfile 的文件也执行了
8,查看构建的镜像,已经在里面了
docker images
五,部署项目
1,运行构建的镜像
docker run -d -p 8080:8080 --name springboot_web zhenghuisheng
解释一下
-d :以后台方式交互运行 -p :暴露端口号第一个8080是暴露linux 的端口号,这样外部才能连接linux 第二个端口号暴露的是容器的端口号,这样linux才能连接容器 这样外部就能通过服务器访问容器了 --name : 给容器命名,可以通过docker ps下查询,名字随意 zhenghuisheng : 上面构建镜像的名称
2,查看当前容器是否在运行,
docker ps
可以发现已经在运行了
3,测试能否连通,上一步可以发现一个ports 端口号,于是curl测试一下
4,curl 测试
curl 0.0.0.0:8080
出现一下界面,测试成功
5,浏览器访问一下,输入服务器外网ip + linux暴露的端口号8080
6,如果没有出现以上界面,那么就有以下可能
没有关闭防火墙,没有在阿里云服务器开放端口
具体详情可以参照另一篇博客:https://blog.csdn.net/zhenghuishengq/article/details/112868488
里面有许多踩坑以及脱坑的事例
7,可以发现已经到了我项目的登录界面了。本来想发这个项目到gitee的,想想还是算了
六,总结
由于我这个是在web上进行了部署,很多人肯定是想问为什么不需要部署 tomcat 环境的,当时我也有过此疑问,为什么不需要呢?后来才想明白,我们用的是springboot项目,里面自带了 tomcat 。
因此到这里,我们的项目就算是部署成功了,欢迎留言!