idea集成docker, jenkins实现一键式部署运维springboot项目

855 阅读4分钟

环境准备

+ Centos: 7
+ Jenkins: 2.60.3
+ Docker: 20.10.17
+ Idea: 2021.1.3
+ SpringBoot: 2.2.2.RELEASE

版本均无特别要求, 上述版本只供参考.

准备一个Centos服务器

可以自己搭建虚拟机/物理机服务器, 也可以直接上阿里云/腾讯云买一个. 只要注意镜像是Centos 7版本即可.

搭建一个springboot项目

一般都是先有的项目, 才想着改进部署方案. 如果没有springboot项目, 可以百度一个搭建教程, 按着搭建即可.

安装Docker

请查看我的另一篇教程: 史上最简单Centos7安装dokcer

安装Jenkins

请查看我的另一篇在思否的教程: 使用Jenkins优雅部署Java项目【超级详细的实战教程】

使用Jenkins部署Springboot项目到Docker容器中

在上一个步骤中, 我们已经完成了使用Jenkins部署Springboot项目到Centos服务器上了. 这一步, 我们需要改进成"使用Jenkins部署springboot项目到Docker容器中", 而不是直接部署到服务器上了.

首先展示一个我项目在服务器的目录结构, 以便理解下面配置中关于路径相关项(根目录为/app/mall-tiny)

image.png

+ jars目录: 用于存放项目Jar包的目录
+ logs目录: 用于存放项目日志文件目录
+ script目录: 用于存放项目启动脚本目录
  1. 在script目录下创建一个名为Dockerfile的文件, 内容如下:

    FROM eclipse/centos_jdk8
    VOLUME /tmp
    ADD jars/mall-tiny-01-1.0-SNAPSHOT.jar app.jar
    EXPOSE 8081
    ENTRYPOINT ["java","-jar","-Dspring.profiles.active=dev","-Djasypt.encryptor.password=BPQyqpWPacz5vCPVa","-Duser.timezone=GMT+8","app.jar"]
    
  2. 还是在script目录下创建一个名为mall-tiny-docker.sh的启动脚本, 内容如下:

    docker stop mall-tiny || true
    docker rm mall-tiny || true
    docker rmi mall-tiny || true
    docker build -f /app/mall-tiny/script/Dockerfile -t mall-tiny /app/mall-tiny/
    docker run -itd --name mall-tiny \
            -p 8081:8081 \
            -v /app/mall-tiny/logs:/app/mall-tiny/logs \
            -v /etc/localtime:/etc/localtime \
            --restart=always \
            mall-tiny:latest
    
  3. 配置Jenkins, 将之前的启动脚本, 替换为我们刚才创建的.

    image.png

  4. 点击Jenkins构建项目, 然后在服务器查看新创建的docker容器

    image.png

Idea集成Jenkins

本文由 简悦 SimpRead 转码, 原文地址 www.jianshu.com

这两天把公司项目里部分手动更新的部署内容,改造成了 Jenkins 里的 job。以前更新一个 jar 包,需要更新客户端(docker-compose 重新 build、up)、更新虚拟机镜像 (手动建虚拟机,替换 jar 包,保存快照)。现在只需要把待更新的 jar 提交到 git 仓库,jenkins 即可完成自动更新。挺方便的了,但还需要更方便。

目前遇到的问题是:jar 包提交到 git 上之后,jenkins 可能还没到轮询时间,导致要几十分钟之后才会触发自动构建任务。如果手动点击构建的话,又要打开浏览器 访问 jenkins 管理后台。既然能通过 Idea 进行 git 操作,能不能也通过 Idea 进行 jenkins 构建操作呢?

答案是:可以的。我再 Idea 上安装一个 Jenkins plugins 就可以了。

安装完成之后,进行一些配置,点击【Test Connection】, 会出现:[Fail] CSRF enabled -> Missing or bad crumb data 错误。

这时,我们需要去 Jenkins 的管理后台,生成一个用户 token

点击生成

复制 token

复制 token

粘贴 token,测试连接。

测试连接

可以看到成功了。

成功

Idea集成Docker

本文由 简悦 SimpRead 转码, 原文地址 segmentfault.com

开发环境 开发环境操作系统:Windows 10 IntelliJ IDEA: 2019.2.4 (Ultimate Edition) Docker 服务所在环境:Ubuntu 18.04.4 Serve......

开发环境

  1. 开发环境操作系统:Windows 10
  2. IntelliJ IDEA: 2019.2.4 (Ultimate Edition)
  3. Docker 服务所在环境:Ubuntu 18.04.4 Server
  4. Docker:19.03.8(Community)
  5. Windows 版 Docker Compose:1.25.4

1. Docker 开启远程访问

参照这篇文章 Docker 开放远程安全访问(开启 2376 端口和 CA 认证)

2. 安装 IDEA 的 Docker 插件

在 File --> Settings --> Plugins 在搜索框中输入 Docker,搜索并点击安装。安装完成后重启 IDEA。 2741877225-5e6e45df5f8d8_fix732.png

3. IDEA 中建立和 Docker 的连接

在 File–> Settings–>Build,Execution,Deployment 中找到 Docker
新建一个 Docker 实例,连接成功后底部会显示 Connection successful。 1698699450-5e6e4502a4619_fix732.png

设置完成后,回到 IDEA 主界面,可以看到下面多出来一个 Docker 窗口或者在 Services 窗口中出现 Docker。选中并连接 Docker,连接上后显示 Containers 和 Images 就是我们现在 Docker 中已经有的容器和镜像。

798332249-5e6e46bc8e6e7_fix732.png

END