jenkins + docker实现自动化部署

405 阅读4分钟

一、背景

在传统开发中,比如前端开发好项目以后需要打包部署上线,通常采用前端本地打包好以后将生成的dist文件给后端,后端再部署到服务上线,在这中间就会出现很多问题,所以我们采用一种自动化部署的方式帮我们做前端的打包、部署等工作,那么jenkins就是其中的一种方式。

二、jenkins是什么?有什么作用

jenkins参考地址🔗



111

Jenkins是一个开源的自动化构建工具,它可用于持续集成和持续交付。Jenkins通过在构建过程中自动执行一系列任务,如编译代码、运行测试、打包构建产物等,从而加快软件交付速度并提高软件质量。

三、实现docker + jenkins安装的大概流程

graph TD
连接远程服务 --> 安装docker --> 使用docker安装并运行jenkins --> 在jenkins上配置部署项目 --> 打包部署上线

四、docker安装

1. 远程连接服务器

ssh root@XX.XXX.XXX.XXX(自己的服务器ip) 例如:ssh root@47.100.100.100
输入密码

image.png 👆以mac为例,可通过自带shell进行远程连接。

2. 安装docker

docker参考地址🔗

# 使用 yum 安装 
$ sudo yum install -y yum-utils 

# 看情况自己是否需要切换源 
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

# 更新 yum 软件源缓存,并安装 docker-ce。
sudo yum install docker-ce docker-ce-cli containerd.io

查看docker是否安装成功 docker -v 出现类似下面的界面就代表成功了。

image.png

五、jenkins安装

docker安装jenkins并运行

1. 下载jenkins

docker pull jenkins/jenkins

2. 创建一个文件夹

mkdir ~/jenkins

3. 运行并启动jenkins容器

docker run -d -p 8080:8080 -p 50000:50000 -v ~/jenkins_home:/var/jenkins_home jenkins/jenkins

完成以上操作后,在浏览器输入XXX.XXX.XXX.XXX:8080 就会出现jenkins界面了

4. 进入【入门】输入密码界面

# 查看刚才创建的容器id
docker ps

# 复制容器id,然后进入容器内
docker exec -it <container_name_or_id> /bin/bash

# 查看密码
cat var/jenkins_home/secrets/initialAdminPassword

#  复制密码并粘贴登录

image.png

5. 进入插件安装,也可以待会用到的时候安装都行

注意一下几个比较重要的插件是否有安装。

  1. node相关(比如下载依赖、打包什么的都会用到)

image.png 2. ssh相关

image.png

  1. 仓库相关的插件
    比如:git/gitee/github等

其他的插件按照推荐的和自己需要使用的来就好了。

六、配置jenkins部署vue项目

滴答滴,滴答滴,成功一大部分喽,进入配置部分啦~

tip: 前往【系统管理】-【插件管理】下载“Localization(Simplified)”这个中文插件,可能使用起来会方便一点。

image.png

第一步:新建任务

image.png

第二步: 任务配置

image.png

image.png

如果👆node选项为空,则去首页的【系统管理】-【全局工具配置】,找到对应的新增node界面,选择自己需要的node版本即可,如果不为空直接选择就好了,配图参考如下: image.png

第三步:实现构建

image.png

image.png

例如vue项目中,执行完这一步会生成一个dist文件,那么我们接下来的任务就是将dist服务部署到服务器。

第四步:实现部署

执行完上面操作会生成一个dist文件,那么在jenkins_home中可以查看到。

注意查看有没有安装"publish Over SSH"这个插件哈

首次搭建的时候,可能需要来这里配置服务器相关的东西,前往【系统管理】-【系统配置】进行配置👇

image.png

配置完成以后,就可以按照自己需要进行下面配置了 image.png

七、部署中常见问题

1. 执行docker命令的时候出现"Cannot connect to the docker daemon at XXXX,Is the docker daemon running"

可能原因:docker没有启动 解决方案:service docker start

八、docker常见命令

  1. 查看所有当前运行的所有 Docker 容器
    docker ps

  2. 查看所有 Docker 容器(包括已经停止的)
    docker ps -a

  3. 进入某个docker容器
    docker exec -it <container_name_or_id> /bin/bash

  4. 以root用户进入 docker 容器
    docker exec -u 0 -it <container_name> /bin/bash

  5. 重启容器
    docker restart

  6. docker start 和 docker restart区别
    docker restart:正在运行的容器需要重新启动时

  7. 以root用户进入 docker 容器
    docker exec -u 0 -it <container_name> /bin/bash

  8. 删除docker容器
    docker rm <container_name_or_id>

  9. 退出容器
    logout