type
status
date
slug
summary
tags
category
icon
password
Property
Mar 4, 2024 12:02 PM

目的

之前的前端构建部署,是通过 scp 传输 dist 的全部文件到指定目录实现部署,这次我们将学习利用 Jenkins 构建 docker 前端镜像并上传到制品库实现部署。

正式开始

Jenkins 登录

想使用 Jenkins 推送镜像到制品库,必须先登录制品库。进入 Jenkins 容器,使用 docker login 登录,然后退出即可
docker exec -it jenkins /bin/bashdocker login 192.168.182.4:8082exit;
notion image
登录一次之后后续就无需登录。
注意:登录不上可以多尝试几次

Nginx 登录制品库

Jenkins 构建并且 push,Nginx 就会触发拉取,因此这边也需要登录。
vi /etc/docker/daemon.jsonsudo systemctl daemon-reloadsudo systemctl restart docker# 登录docker login 192.168.182.4:8082
notion image
登录一次之后后续就无需登录。

DockerFile

前端通过 Jenkins 构建 docker 镜像,因此需要添加 DockerFile 文件。
DockerFile 是一个镜像制作过程的步骤描述,新增文件添加一下代码
FROM nginx:1.15-alpineCOPY dist /usr/share/nginx/htmlWORKDIR /usr/share/nginx/html
  • 拉取一个 nginx 1.15-alpine 版本的镜像。
  • 将当前目录下的 dist 文件夹拷贝到镜像的 /usr/share/nginx/html 文件夹。
  • 声明启动容器时,在 /usr/share/nginx/html 下面执行。

jenkins 配置修改

修改配置
notion image
添加以下代码
set -etimestamp=`date '+%Y%m%d%H%M%S'` node -v npm -v npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm installnpm run build # 编译docker镜像 docker build -t 192.168.182.4:8082/fe/nginx-fe-$timestamp . # 推送docker镜像到制品库 docker push 192.168.182.4:8082/fe/nginx-fe-$timestamp # 远程执行命令部署镜像 ssh -o StrictHostKeyChecking=no root@192.168.182.4 "docker pull 192.168.182.4:8082/fe/nginx-fe-$timestamp && \docker stop nginx-test && \docker rm nginx-test && \docker run -p 80:80 -itd \--name nginx-test \--restart always \192.168.182.4:8082/fe/nginx-fe-$timestamp"
流程分析
  • Jenkins 在命令中用 $-变量名 进行使用。 timestamp=date ‘+%Y%m%d%H%M%S’,唯一的 docker 命名
  • 依据 DockerFile 打包镜像并且推送
  • Nginx 拉取刚推送的 docker 镜像,停止正在运行的 container,删除之后并且运行当前的镜像。
上述代码中相关注意事项
  • 制品库的地址:172.16.81.150:8082
  • nginx 的地址:192.168.182.4
  • nginx 的 name:nginx-test
notion image

结语

和之前的构建部署方式中,利用 docker 镜像可以很好地代码回退和迭代更新,实现了版本在生产环境更好的控制。
 
hexo添加动态背景CICD实战之Nexus制品库的介绍与安装
Loading...
Kitety
Kitety
独特为佳,Kitety的个人博客
公告
我曾经七次鄙视自己的灵魂
--卡里·纪伯伦
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
 
支持在线微信赞赏扶贫
notion image
 
最新评论
Loading...