jenkins自动化部署前端vue+docker项目

文章目录

  • 一、准备工作
  • 二、编写dockerfile文件
  • 三、新建jenkins任务


一、准备工作

默认你的服务器centos已经搭建完成,同时已经安装了jenkins和docker。
接下来去下载开源项目ruoyi并上传到自己的gitee中。
在这里插入图片描述

二、编写dockerfile文件

打开项目工程,在rouyi-vue-ui下新建docker文件夹,并新建Dockerfile文件、.dockerignore忽略文件、nginx.conf配置文件
在这里插入图片描述
Dockerfile文件内容如下:

# 拉取nginx基础镜像
FROM nginx:1.21.1# 维护者信息
MAINTAINER zhy# 将dist文件中的内容复制到 `/usr/share/nginx/html/` 这个目录下面
COPY dist/  /usr/share/nginx/html/
# 用本地配置文件来替换nginx镜像里的默认配置
COPY nginx/nginx.conf /etc/nginx/nginx.conf# 对外暴漏的端口号
# [注:EXPOSE指令只是声明容器运行时提供的服务端口,给读者看有哪些端口,在运行时只会开启程序自身的端口!!]
EXPOSE 80# 启动nginx容器
CMD ["nginx", "-g", "daemon off;"]

.dockerignore内容如下

node_modules

nginx.conf内容如下

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {# nginx 监听端口listen       80;# 服务器ipserver_name  192.168.17.79;location / {# 前端资源存放路径root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

提交代码到gitee仓库

三、新建jenkins任务

打开jenkins,新建任务
在这里插入图片描述
填写描述
在这里插入图片描述
源码管理选择git,粘贴gitee项目地址
在这里插入图片描述
在这里插入图片描述
选择凭证,没有的话点击添加即可
在这里插入图片描述
构建步骤选择执行shell
在这里插入图片描述
添加以下内容

# 先进入到前端工程中
cd ry-vue-demo-ui
# 安装依赖
echo "<-------------------------------------->"
echo "安装依赖"
npm install
echo "<-------------------------------------->"
echo "打包项目"
npm run build:prod
echo "拷贝文件到docker目录下"
cp -r dist/ docker/
cd docker
echo "构建镜像"
docker build -f Dockerfile -t ruoyi-vue . --no-cache
# 删除执行的容器
docker ps -a | grep ruoyi-vue | awk '{print $1}' | xargs -i docker stop {} | xargs -i docker rm {}
echo "运行容器"
docker run -d -p 81:80 --restart=always --name ruoyi-vue ruoyi-vue

保存,立即构建
在这里插入图片描述
查看控制台日志输出
在这里插入图片描述
结果报错了,说nginx.conf文件不存在
在这里插入图片描述
路径写的有问题,这里已经进入到docker目录下了,直接拷贝nginx.conf
在这里插入图片描述
修改Dockerfile,提交代码,接着构建项目,这次就构建成功了
在这里插入图片描述
打开浏览器访问试试,部署成功
在这里插入图片描述

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

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

相关文章

opencv中contours的使用

一 Contour FindingContours使用 STL-style vector<> 表示&#xff0c;如 vector<cv::Point>, vector<cv::Point2f>。opencv中&#xff0c;使用函数 cv::findContours() 寻找contours&#xff0c; 具体函数定义如下&#xff1a;void cv::findContours(cv::In…

网络安全初级

1、docker并配置代理 &#xff08;1&#xff09;在Ubuntu中安装docker apt-get install docker.io docker-compose &#xff08;2&#xff09;安装完成后&#xff0c;进入/etc/systemd/system/docker.service.d/http-proxy.conf配置文件下进行代理的配置&#xff0c;配置如图…

JetBrains IDE 性能优化指南:idea.vmoptions 核心参数解析与配置建议

文章目录深入解析 JetBrains IDE 的 VM 选项&#xff1a;idea.vmoptions 参数详解一、内存与垃圾回收配置二、诊断与错误处理三、运行时优化参数四、模块系统与反射控制五、特殊参数说明六、配置建议指南深入解析 JetBrains IDE 的 VM 选项&#xff1a;idea.vmoptions 参数详解…

Datawhale AI夏令营 《基于带货视频评论的用户洞察挑战赛》Part .1.

1. 赛题 参赛者需要构建端到端的评论分析系统&#xff0c;完成三大核心任务&#xff1a; 商品识别 输入&#xff1a;视频描述文本(video_desc)和标签(video_tags)输出&#xff1a;精准识别推广商品名称(Xfaiyx Smart Translator/Recorder) 多维情感分析 维度&#xff1a;情感倾…

【博文汇项目全维度测试报告:功能与自动化双轨验证】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 项目背景:项目背景与意义&#xff1a;项目概述已实现的主要功能包括&#xff1a;当前系统存在的不足…

Java陷阱之assert关键字详解

Assert.isTrue()方法用于断言条件是否为真&#xff0c;如果条件不满足&#xff08;即为false&#xff09;&#xff0c;则会抛出IllegalArgumentException&#xff0c;并附带预设的错误信息。在示例中&#xff0c;当1.23不小于2.23时&#xff0c;方法抛出了异常&#xff0c;显示…

mysql 散记:innodb引擎和memory引擎对比 sql语句少用函数 事务与长事务

文章目录innodb引擎和memory引擎对比对比sql 语句&#xff1a;尽可能不使用函数条件隐式转换隐式类型转换隐式字符编码转换补充问题事务与长事务ACIDread viewMVCC 一致性视图当前读view 虚拟表长事务的影响与排查影响排查方法预防innodb引擎和memory引擎对比 innodb引擎是索引…

APK安装器(安卓端)一键解除VX限制!轻松安装各种手机应用

VX为了防止恶意软件通过平台传播&#xff0c;保障用户设备安全&#xff0c;会把通过VX发送的 APK 文件自动改成 “apk.1” 格式&#xff0c;这样就能减少恶意软件传播的风险。我平时推荐安卓软件的时候&#xff0c;有朋友反馈说&#xff0c;文件发到VX里就变成 “apk.1” 了&am…

Debian:从GNOME切换到Xfce

最近为20年前的T43重新安装了Debian系统&#xff0c;但使用的gnome桌面太卡了。于是换成轻量级的Xfce系统。 1.安装Xfce sudo apt update sudo apt install xfce4 xfce4-goodies命令中xfce4 是Xfce桌面环境的核心组件&#xff0c;xfce4-goodies 是一些额外的工具和插件&#xf…

徐州服务器租用:BGP线路的特点有哪些?

BGP的中文全称为边界网关协议&#xff0c;是指一种运行在传输控制协议上的自治系统路由协议&#xff0c;主要的功能就是可以实时控制路由的传播&#xff0c;同时能够帮助用户选择更合适的路由线路&#xff0c;保证网络能够稳定的运行&#xff0c;不会轻易出现网络卡顿或故障的状…

Java使用OSHI获取服务器信息

OSHI可以获取系统信息&#xff08;CPU、内存、磁盘、网络等&#xff09;&#xff0c;纯Java实现&#xff08;通过JNA访问本地API&#xff0c;无需安装本地库&#xff09;&#xff0c;跨平台支持。引入依赖<dependency><groupId>com.github.oshi</groupId><…

企业数字化资产管理安全、成本、协作困局难解?

在数字化浪潮席卷全球的今天&#xff0c;3D技术已成为驱动影视动画、工业设计、建筑可视化等领域创新的核心动力。然而&#xff0c;随着3D资产规模呈指数级增长&#xff0c;企业正面临前所未有的管理挑战&#xff1a;海量模型存储混乱、版本迭代难以追溯、团队协作效率低下、知…

力扣面试150题--组合总和

Day 72 题目描述&#xff08;终于理顺回溯了&#xff09;思路 这里还是基于模板来说明代码思路void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择 : 本层集合中的元素) {处理节点;backtracking(路径, 选择列表); // 递归撤销处理; // 回溯} }对于主要函数的…

多客户端-服务器(select,poll)

多客户端-服务器结构总结一、普通CS架构的局限性核心问题&#xff1a;单线程中accept&#xff08;阻塞等待连接&#xff09;与read&#xff08;阻塞读取数据&#xff09;函数互相干扰&#xff0c;无法同时处理多客户端。本质原因&#xff1a;阻塞型函数需独立执行&#xff0c;若…

如何使用postman做接口测试?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 常用的接口测试工具主要有以下几种&#xff1a;Postman: 简单方便的接口调试工具&#xff0c;便于分享和协作。具有接口调试&#xff0c;接口集管理&#xff0c…

新型网络架构设计助力智慧医疗降本增效

随着智慧医疗的快速发展,越来越多的医院开始布局“互联网+医疗”服务,通过数字化手段提升医疗服务效率。然而,如何构建一个既稳定可靠又具备灵活扩展能力的医疗网络,成为医院数字化转型中的关键问题。本文以某智慧医疗项目为例,探讨传统网络与SD-WAN结合的最佳实践。 背景…

一文读懂现代卷积神经网络—使用块的网络(VGG)

目录 什么是使用块的网络&#xff08;VGG&#xff09;&#xff1f; 一、VGG 的核心思想&#xff1a;用块&#xff08;Block&#xff09;构建网络 二、VGG 的网络结构 三、VGG 的优势 1. 结构简洁统一 2. 强大的特征表达能力 3. 小卷积核的计算效率 4. 良好的迁移学习性…

Linux的相关学习

linux 1.文件权限怎么修改 chmod [权限模式] [文件或目录]1、**数字模式&#xff08;八进制&#xff09;**&#xff1a; chmod 755 myfile.sh # 所有者&#xff1a;rwx (7)&#xff0c;组&#xff1a;r-x (5)&#xff0c;其他用户&#xff1a;r-x (5) 7 rwx&#xff08;读写…

Kotlin集合接口

Kotlin 集合概述 Kotlin 集合提供了对数据进行各种操作的便捷方式。它们实现了接口&#xff0c;因此可以操作不同类型的数据。例如&#xff0c;你可以编写一个函数&#xff0c;同时打印 Set 和 List 的所有元素。我们来看看这是如何实现的。Iterable 接口 我们已经知道&#xf…

Git 常用操作与注意事项全攻略

1. 基本配置 git config --global user.name "你的名字" git config --global user.email "你的邮箱" git config --list # 查看当前配置建议全局配置用户名和邮箱&#xff0c;否则提交记录可能不规范2.仓库操作 初始化本地仓库 git init只在新建项目时使…