在docker上部署springboot项目
〇、环境
开发:win10 + idea2020.1 + java11
部署:centos7+docker
一、下载openjdk
docker pull openjdk:版本号
docker run --name=myopenjdk -idt openjdk:版本号
二、打包springboot项目注意事项
1.去掉Test步骤,快速打包;
选中test,点击蓝色闪电,选中package,点击绿色三角。
2.文件读取方式
不用使用***.getFile(),***.getFileName(),而是使用如下方式:
1 InputStream is=this.getClass().getResourceAsStream("/static/***.csv");
2 BufferedReader br = new BufferedReader(new InputStreamReader(is));
3.layui的图标
要使用下图第一种方式。若使用第二种方式很可能只显示一个 口
三、创建jar镜像
1.Dockerfile文件
把打包好的jar包放到CentOS7里,并在同目录下新建一个文件——Dockerfile,文件内容如下(要注意java版本、jar包名的修改):
# 基于openjdk 镜像 FROM openjdk:版本号 # 将本地文件夹挂在到当前容器 VOLUME /tmp # 复制文件到容器 ADD demo-0.0.1-SNAPSHOT.jar app.jar # 声明需要暴露的端口 EXPOSE 8080 # 配置容器启动后执行的命令
RUN bash -c "touch /app.jar" ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.创建镜像
docker build -t server .
- -t 表示将新镜像命名为 server
- 末尾的 . 指明 build context 为当前目录
- Docker 默认会从 build context 中查找 Dockerfile 文件,我们也可以通过 -f 参数指定 Dockerfile 的位置。
3.运行镜像
docker run --net host -it -d -p 8080:8080 server
四、让防火墙开放8080端口
systemctl start firewalld 开启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent 开放8080端口