# Jenkins教程 - 7 部署SpringBoot到docker容器中
现在使用 Jenkin 来部署 SpringBoot 项目,将项目部署到 Docker 容器中。
这里为了保持本章内容的独立性,之前已经配置的步骤,也重新复制了过来,如果你从前面看过来的,就当重新温习了一遍,我将之前的构建任务删掉了,重新创建了一遍。
# 7.1 准备SpringBoot项目
# 1 新建一个SpringBoot 项目
新建一个 SpringBoot 项目,这里我就在 SpringBoot 中新建一个 Controller。
只提供了一个接口,证明 SpringBoot 能访问运行就好了。
package com.doubibiji.hellospringboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello www.doubibiji.com";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
同时在项目下创建一个 docker
文件夹,并编写 Dockerfile
文件,后面用来生成 Docker
镜像。
Dockerfile
文件内容如下:
# 使用基础的 Java 11镜像
FROM openjdk:11
# 对外暴露的端口
EXPOSE 9000
# 设置环境变量来指定时区
ENV TZ=Asia/Shanghai
# 将时区文件复制到容器中的特定路径
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
# 将jar包添加到容器中并更名为app.jar
ADD hello-springboot-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
项目结构如下:
这里还有一个 deploy.sh ,用来执行停止、删除、启动容器等操作,后面介绍。
# 2 将SpringBoot项目托管码云
Jenkins 服务后面需要从 git 仓库拉取代码进行构建,这里使用 gitee 码云来托管代码,所以这里将 SpringBoot 项目托管到码云。
这里细节就不介绍了,git 不太会的,可以学习本站的 git教程 (opens new window) 。
# 7.2 配置插件和工具
# 1 安装Maven插件
我们现在构建项目需要使用 Maven,所以还需要安装一个 Maven 插件。
内容未完......