使用Docker+Jenkins+Gitee自动化部署Vue+ElementUI项目

news2025/1/11 20:00:14

参考本文章并打算跟着步骤进行构建部署的朋友们,建议直接先看踩坑总结,看看自己是否存在对应的问题,免得构建完才发现出错了,毕竟构建一次过程还挺长的。也可以自己走一遍后再参考如何解决啦。

1、Docker安装Jenkins

  • 关于如何安装Jenkins,网上教程攻略很多,此处不做过多赘述。也可以参考我上一篇文章使用Docker+Jenkins+Gitee自动化部署SpringBoot项目中搭建基础环境部分,使用Docker-Compose安装Jenkins的部分。

2、Jenkins安装所需插件

  • Publish Over SSH:远程连接工具
  • Gitee:gitee仓库的一些辅助工具
  • NodeJS Plugin:NodeJS工具
    插件的安装过程都是一致的,同样可以参考我上一篇文章使用Docker+Jenkins+Gitee自动化部署SpringBoot项目中安装核心插件部分

3、全局工具配置

  • git
    默认配置即可。
    在这里插入图片描述
  • NodeJS
    需要注意的是,NodeJS最好根据自己本地环境的版本来选择,不要盲目选择最新版本。这可能会导致很多兼容问题。在本地环境调出控制台,输入node -v查询本地Node版本。我的版本是14.4.0,因此在这里我选择的是14.4.0版本。
    在这里插入图片描述

4、配置全局凭证

配置Gitee全局凭证,用于连接仓库拉取代码。
在这里插入图片描述

5、创建Dockerfile文件

在对应的项目根目录下,创建Dockerfile文件,并上传至gitee仓库。
在这里插入图片描述

FROM node:14.4.0 as build-stage
WORKDIR /app
COPY . .
RUN npm install && npm audit fix && npm run build

FROM nginx:stable-alpine-perl as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
FROM node:14.4.0 as build-stage指定基础node镜像
WORKDIR /app指定基础镜像的工作目录
COPY . .将Dockerfile文件所在目录所有内容拷贝到工作目录
npm install下载npm所需的插件
npm audit fix修复插件
npm run build执行构建,打包vue项目
FROM nginx:stable-alpine-perl as production-stage指定基础nginx镜像
COPY --from=build-stage /app/dist /usr/share/nginx/html把上个步骤容器里的/app/dist拷贝到目标目录
EXPOSE 80开放指定端口
CMD [“nginx”, “-g”, “daemon off;”]启动nginx容器的命令

6、创建构建任务

  • 创建一个自由风格的项目
    在这里插入图片描述
  • General阶段
    勾选参数化构建过程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 源码管理
    在这里插入图片描述
  • 构建环境
    在这里插入图片描述
  • 构建
#!/bin/bash

CONTAINER=${container_name}
PORT=${port}


# build docker image
docker build --no-cache -t ${image_name}:${tag} .


checkDocker() {
  RUNNING=$(docker inspect --format="{{ .State.Running }}" $CONTAINER 2>/dev/null)
  if [ -z $RUNNING ]; then
    echo "$CONTAINER does not exist."
    return 1
  fi

  if [ "$RUNNING" == "false" ]; then
    matching=$(docker ps -a --filter="name=$CONTAINER" -q | xargs)
    if [ -n $matching ]; then
      docker rm $matching
    fi
    return 2
  else
    echo "$CONTAINER is running."
    matchingStarted=$(docker ps --filter="name=$CONTAINER" -q | xargs)
    if [ -n $matchingStarted ]; then
      docker stop $matchingStarted
      docker rm ${container_name}
    fi
  fi
}

checkDocker


# run docker image
docker run -itd --name $CONTAINER -p $PORT:80 ${image_name}:${tag}

docker rmi $(docker images | grep "none" | awk '{print $3}')

以上构建参数的说明:
在这里插入图片描述
其中,docker rmi $(docker images | grep "none" | awk '{print $3}')的作用是在构建完成之后,删除构建过程中产生的中间镜像。若不执行该语句,则会出现许多tag为none的镜像,占用空间,如:
在这里插入图片描述

7、开始构建

在这里插入图片描述
在这里插入图片描述

8、踩坑总结

1、dial unix /var/run/docker.sock: connect: permission denied
出现该问题是因为没有给 /var/run/docker.sock授权。或者说linux服务器重启后,权限消失,需要重新授权。解决办法有两个。第一个是每次在构建前,手动执行一次chmod -R 777 /var/run/docker.sock。第二个解决办法是,将当前用户添加到docker用户组。dial unix /var/run/docker.sock: connect: permission denied

2、当使用ElementUI作为前端组件库时,部署上docker时,图标消失
Vue使用build打包时element ui图标不显示。vue-cli2脚手架的解决办法。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Monai 和 PyTorch 预处理 3D Volumes以进行肿瘤分割

1.介绍 针对在使用传统图像处理工具时可能遇到的困难,深度学习已成为医疗保健领域的主要解决方案。 因为医学图像比标准图像更难处理(高对比度、人体的广泛变化……)深度学习用于分类、对象检测,尤其是分割任务。 在分割方面&a…

[附源码]计算机毕业设计健身生活系统论文Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SQL注入漏洞 | updatexml报错注入

文章目录前言MySQL updatexml报错注入前言 XML XML 被设计用来传输和存储数据,是各种应用程序之间进行数据传输的最常用的工具。 xpath XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在…

传统机器学习算法-支持向量机模型详解

原文链接 引言 本篇我们要讲解的模型是大名鼎鼎的支持向量机 SVM,这是曾经在机器学习界有着近乎「垄断」地位的模型,影响力持续了好多年。直至今日,即使深度学习神经网络的影响力逐渐增强,但 SVM 在中小型数据集上依旧有着可以和…

申请澳洲八大,IB成绩多高才有胜算?

鉴于IB文凭项目是全球通用的国际课程,因此几乎所有澳洲大学都可以接受IB文凭直接申请本科,包括澳洲八大。 首先我们要知道,澳洲八大究竟是哪八个顶级大学?澳洲的大学是按星级来分类的,五星级大学就是澳洲八大&#xff…

计算机网络期末复习题含解析(第一章)

目录 单项选择 填空题 判断题 单项选择 题号:25995 1.1.15 互联网服务提供商的英文缩写是()。 A、ISA B、ISP C、IXP D、RFC 答案: B ISP:Internet Service Provider 题号:25986 1.1.6 网络体系…

如何熟练掌握JDBC编程?

目录 🐳今日良言:未来可期,人生值得 🐂一、JDBC 🐼1.概念 🐼2.背景 🐼3.使用 🐯二、编写数据库代码 🐼1.增/删/改数据 🐼2.查数据 🐳今日良言:未来可期,人生值得…

机器学习笔记之受限玻尔兹曼机(六)对数似然梯度求解

机器学习笔记之受限玻尔兹曼机——对数似然梯度求解引言回顾:含隐变量能量模型的对数似然梯度受限玻尔兹曼机的对数似然梯度模型参数求解主体思路求解过程引言 上一节介绍了含隐变量能量模型的对数似然梯度求解。本节针对受限玻尔兹曼机,对模型参数进行…

c#入门-完全限定名,引用命名空间

完全限定名 包含完整命名空间的类名,称为完全限定名。 namespace 黄野平原.古堡 {class 蜡烛怪 { } }例如 黄野平原.古堡.蜡烛怪 a new 黄野平原.古堡.蜡烛怪();引用命名空间 但是很多的类都会写在命名空间下,如果全都这么写代码太长了。 为了省略掉…

Unity-Photon Pun2个人总结

进入房间前的配置 1、使用设定好的Setting private void Start(){PhotonNetwork.ConnectUsingSettings();} 2、MonoBehaviour改为MonoBehaviourPunCallbacks public class NetworkLauncher : MonoBehaviourPunCallbacks{} 这样我们才可以获得Photon服务端的一些反馈资料 3…

高考题改成IB试题,会是什么样子?

从2019年浙江高考语文卷的一篇现代文阅读说起的,振语看过了这道题和推文作者的解读后,一时兴起,就想着能不能把它改成一道IB考题,顺带着也把这篇选文细读评点了一番。(一)高考试题再现: 这道高考…

百趣代谢组学分享:HSFB2b通过促进类黄酮生物合成赋予大豆耐盐能力

​我国大豆的产量远远不能满足国内需求,提高大豆的耐逆性可以充分利用边际土地增加大豆种植面积从而提高大豆产量。百趣代谢组学分享,热激转录因子基因在植物生长过程中发挥了重要作用,然而在大豆耐盐反应中热激转录因子的功能及机理仍不清楚…

A-Level商务例题解析及练习Cash flow forecasting

今日知识点: Cash flow forecasting Cash inflows Cash outflows Limitations of cash flow forecasting例题 Q: Discuss the view that cash flow forecasts for a newly operating international airport may be of limited use to its senior managers. 解析 Ans…

Mysql 进阶(面向面试篇)事务篇

1、事务 1.1 事务简介 事务 是一组操作的集合,它是不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。保证原子性 就比如: 张三给李四转账1000块钱&#x…

仿英雄联盟网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品下载 DW游戏介绍网页作业代码下载

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

推荐系统CTR方向相关论文一句话总结

Fearure Interaction // CTR纯FM模型及其演变Factorization Machines. 2010Field-aware Factorization Machines for CTR Prediction. 2016Neural Factorization Machines for Sparse Predictive Analytics. 2017Attentional Factorization Machines: Learning the Weight of F…

StringBuffer类

StringBuffer基本介绍 StringBuff代表可变的字符串,可以对字符串内容进行增删很多方法与String相同,但StringBuff是可变长度的StringBuff是一个容器 了解StringBuffer StringBuffer的继承关系: 可以看到StringBuffer继承AbstractStringBu…

【计网实验】思科CiscoPacketTracer仿真实验

本文参考B站up主:湖科大教书匠 软件版本:Cisco Packet Tracer 6.1.1sv ❓ 实验01的内容较为简单,所以不写了~ 🌹 因作者水平有限,若有遗漏、错误等地方,请大佬批评指正 实验02:访问Web服务器 实…

设计必备,5个png免抠素材网站,建议收藏

做设计、PPT都需要用到大量的免抠素材,职场中熟练使用Photoshop的人毕竟是少数,也很少有人愿意花费时间去精细抠图。那这5个免抠素材网站一定要收藏好,可以有效帮你节省时间,提高工作效率。1、菜鸟图库 https://www.sucai999.com/…

计算机毕业设计php+vue基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,员工宿舍报修系统就是信息时代变革中的产物之一。 任何系统都要遵循系…