Docker使用(六) —docker部署SpringBoot(jar包)

timo-nbktp 1年前 ⋅ 999 阅读

1、前提安装Docker

在使用docker-compose之前,需要先搭建docker环境。

2、部署jar包

2.1、准备java工程

搭建一个SpringBoot项目,创建一个Controllerapplication.properties文件
application.properties:

# 创建几个变量,用于验证docker启动jar时对变量进行修改
server.port=8088
server.name="boot-demo"
file.max=10
file.min=1

Controller:

@RestController
public class Controller {

    @Value("${file.max}")
    private String max;

    @Value("${file.min}")
    private String min;

    @Value("${server.name}")
    private String name;

    @GetMapping("test")
    public String main() throws Exception {
        return "Name:" + name + ",Max:" + max + ",Min:" + min;
    }
}

2.2、创建Dockerfile文件

内容如:
可以直接在linux上传创建,比如:vim /home/server/boot-demo/Dockerfile,也可以在本地创建好以后上传到服务器;

FROM java:8

# 创建工作目录
RUN mkdir -p /usr/local/application/jar /usr/local/application/logs

COPY *.jar /usr/local/application/jar/application.jar

#定义时区参数
ENV TZ=Asia/Shanghai

#设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone

# jar中自定义的变量,并且设置默认值,实际项目中没有可以不设置
ENV FILE_MAX="10" \
	FILE_MIN="1"

# 工作目录(docker内部目录)
WORKDIR /usr/local/application

# 暴露端口
EXPOSE 8088
# 启动jar命令
ENTRYPOINT exec java -Dfile.max=${FILE_MAX} -Dfile.min=${FILE_MIN} -jar /usr/local/application/jar/application.jar

2.3、上传文件

将打包后的jar以及Dockerfile文件复制到服务的同一个目录下,比如:/home/server/boot-demo
注意: 在此之前一定要保证,项目在本地能够运行

3、制作docker镜像

执行build命令:

docker build --rm -t  boot-demo:version .

-t:docker镜像名称
version:表示具体的版本号
注意: 最后一定要加上小数点

验证是否成功:
存在镜像,则表示成功

`docker images`

4、启动容器

映射端口(8088为当前项目的端口)
将文件进行挂载,/home/server/boot-demo为项目目录

docker run --name boot-demo -p 8088:8088 \
-v /home/server/boot-demo/temp:/usr/local/application/temp \
-d boot-demo:1.0

在启动时,也可以对项目的配置文件参数进行修改,但是只能修改Dockerfile中存在的参数,比如:

docker run --name boot-demo -p 8088:8088 \
-v /home/server/boot-demo/logs:/usr/local/application/logs \
-e FILE_MAX="20" \
-e FILE_MIN="10" \
-d boot-demo:1.0

5、测试访问

我们以第二种,设置参数的形式进行修改参数的形式进行启动
默认清空下,FILE_MAX为10,FILE_MIN为1;如果访问时出现FILE_MAX为20,FILE_MIN为10,则表示启动成功并且自定义配置有效;

6、更新jar包

更新Controller代码:

	// 在原有代码基础上,加入"更新了Jar包:"
    @GetMapping("test")
    public String main() throws Exception {
        return "更新了Jar包:Name:" + name + ",Max:" + max + ",Min:" + min;
    }

jar更新了代码,那么我们可以重新打包,并且上传到/home/server/boot-demo下,然后在copy到容器中,上传最新jar后执行以下命令:

上传新的jar到/home/server/boot-demo目录下,执行以下命令:

docker cp boot-demo-1.0.jar  boot-demo:/usr/local/application/jar/application.jar

重启容器:

docker restart boot-demo

再次访问:

 

--end--

 

 

版权 本着开源共享、共同学习的精神,本文转载自 https://blog.csdn.net/zhuocailing3390/article/details/121843409 , 如果侵权之处,请联系博主进行删除,谢谢~