# 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

同时在项目下创建一个 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

项目结构如下:

这里还有一个 deploy.sh ,用来执行停止、删除、启动容器等操作,后面介绍。

# 2 将SpringBoot项目托管码云

Jenkins 服务后面需要从 git 仓库拉取代码进行构建,这里使用 gitee 码云来托管代码,所以这里将 SpringBoot 项目托管到码云。

这里细节就不介绍了,git 不太会的,可以学习本站的 git教程 (opens new window)

# 7.2 配置插件和工具

# 1 安装Maven插件

我们现在构建项目需要使用 Maven,所以还需要安装一个 Maven 插件。

内容未完......