安装Docke

不知道怎么安装Docker可以看我之前的博文:使用Jenkins+Pipeline+Docker将Spring Boot应用部署到Tomcat

安装Jenkins

这里安装Jenkins跟之前安装jenkins有一些区别。因为我们的Jenkins现在是安装在docker容器里面的。而我们的nginx服务器也是安装在docker容器里面的。所以我们需要把jenkins里面的目录挂载到我们的宿主主机上,然后把我们的nginx服务器的目录也挂在在同一个宿主主机的目录上。这样jenkins就可以把build好的项目通过共享的目录放到nginx服务器上面。这样就实现了两个docker容器之间的文件共享

当然可能我这样作比较复杂,但这是我自己的实践方式,当然这个过程中也遇到很多坑,主要是记录一下,避免以后踩坑。。

至于怎么挂载docker中的目录到宿主机器目录可以参考下面:
https://blog.csdn.net/weixin_37773766/article/details/80702926
https://blog.csdn.net/zhuchunyan_aijia/article/details/80094644
https://www.cnblogs.com/greatadmin/p/5005454.html

我这里用的是这个例子:

docker run --name=test -it -v /opt/test:/usr/databases docker-test /bin/bash
test是容器的名字,需唯一;-v表示创建一个数据卷并挂载到容器里,示例表示把宿主机的/opt/test目录挂载到容器的/usr/databases目录下;docker-test是镜像的名字

我的jenkins镜像名字叫做jenkins/jenkins,所以我的命令如下:

docker run --name=myjenkins -u 0 -it -v /nginx/resources:/nginx/resources jenkins/jenkins /bin/bash


然后我们也可以看到我们的容器中多了一个目录叫做nginx。

安装Nginx

安装Nginx的方式更上面也是一样的,也是需要挂载目录。

因为nginx存放资源的路径是在usr/share/nginx/html里面的,因为懒得修改配置,所以我们直接把usr/share/nginx/html的路径挂载到宿主主机的/nginx/resources上面。这样就可以把jenkins容器和nginx容器互相共享文件了。。

命令如下:

docker run --name=mynginx -u 0 -it -v /nginx/resources:/usr/share/nginx/html nginx /bin/bash


之后之后我们nginx也安装完毕了。

现在我们开始配置jenkins

配置Jenkins

我们首先要开启一下volumes

然后要做的是先配置一下端口号。。


nginx也是一样,设置一下端口

现在就可以开启我们jenkins的页面,开始安装jenkins。。。
步骤之前的都一样,这里就跳过了。。

配置Node环境

首先先下载node js插件

然后我们配置一下全局的工具。。

之后就开始创建Pipeline项目

创建Pipeline项目

设置轮询

然后开始写pipeline的脚本

node {def node_homestage('Preparation') {node_home = tool 'node'git branch: 'REL1.0', credentialsId: 'xxxxxx', url: 'https://github.com/xxxx/gallery-web.git'}stage('Install') {sh '${node_home}/bin/npm install'}stage('Build') {sh  '${node_home}/bin/npm run build'}stage('Deploy'){sh 'cp -rf /var/jenkins_home/workspace/gallery-web/dist/*  /nginx/resources/'}}

然后开始build项目。。。

然后可以看见他在下载node并解压了。。

但是之后npm install 的时候会提示你/usr/bin/env: node: No such file or directory,这个时候你就要把你的node关联到/usr/bin/node还有/usr/local/bin/node最好都关联上,npm的也可以关联上。。

关联上之后你会发现npm install的时候还是会有问题,会报ETXTBSY: text file is busy这种问题。。。


https://github.com/laravel/homestead/issues/922
最后找了很多资料,有的说要换成npm5.6的版本,但是我最后发现了原因是不能在与windows共享的文件夹下时候npm install,因为我们的\var\jenkins_home\tools\jenkins.plugins.nodejs.tools.NodeJSInstallation这整个\var\jenkins_home是开启了volumesde ,与windows挂载了,所以有问题,所以我们可以直接从网上下载一个node包,然后copy到别处进行解压。。。
所以说kitematic这个工具真的太坑了。。真的推荐不要随便用这个,不然出的问题会很多。。

我这里网上下载了一个node包node-v11.11.0-linux-x64.tar.gz,可以去我的资源页下载。。

之后我们把它放到共享目录下。。

然后我们拷贝到其他的地方。。拷贝到我们自己创建的目录下

然后开始解压。。

tar -vxf node-v11.11.0-linux-x64.tar

然后我们关联一下node的命令还有npm的命令。。

使用
ln -s 关联到/usr/bin还有/usr/local/bin

npm的也是如此。。

之后我们的pipeline的脚本就可以改一下了。。

node {stage('Preparation') {git branch: 'REL1.0', credentialsId: 'xxxx', url: 'https://github.com/xxxxxgallery-web.git'}stage('Install') {sh 'npm install'}stage('Build') {sh  'npm run build'}stage('Deploy'){sh 'cp -rf /var/jenkins_home/workspace/gallery-web/dist/*  /nginx/resources/'}}

然后我们终于可以开始构建成功了。。
总之在这一过程中遇到了很多问题、、、还是安安心心在windows下搞吧。。

使用Docker+Jenkins+Pipeline将Vue项目部署到Nginx服务器相关推荐

  1. linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器

    项目开发完成之后我们就需要将项目上线运行供用户访问,这时候我们就需要将项目部署到服务器上.对于Vue这种前端Web项目我们一般都部署在linux系统上,Linux常见的Web应用服务器有Apache. ...

  2. vue项目部署到nginx

    vue项目部署到nginx 一.vue项目打包 修改config/index.js的assetsPublicPath为 ./(注意一定是build里面的,下面dev中也有这个配置) 这个路径的配置很重 ...

  3. ssm项目直接加html文件,如何把ssm项目和vue项目部署在云服务器(上)

    如何把ssm项目和vue项目部署在云服务器(上) 如何把ssm项目和vue项目部署在云服务器(上) 一.引入 URL的概念理解 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL( ...

  4. Vue项目部署到CentOS服务器

    Vue项目部署到CentOS服务器 config/index.js上修改以下部分: 首先是host:'localhost'改为服务器ip assetsPublicPath:'/'改为assetsPub ...

  5. 将Vue项目部署在Nginx,解决前端路由、反向代理和静态资源问题

    将Vue项目部署在Nginx,解决前端路由.反向代理和静态资源问题 需求: 一台服务器,Linux 安装了Nginx 使用Vue脚手架编写的Vue项目 第一步:将Vue项目打包,然后将生成的dist文 ...

  6. 面试宝典六-- 项目部署(linux环境搭建,springboot项目部署 ,vue项目部署,nginx负载均衡)

    环境准备 实际开发中,项目肯定是部署在一个个的linux系统服务器中的,学习过程中,可以在自己电脑上安装虚 拟机然后配置linux操作系统进行模拟项目部署,当然也可以花费较小费用使用各种平台提供的云服 ...

  7. vue打包部署到php,打包vue项目部署在nginx

    因为liunx操作命令不是很熟,我整的是宝塔面板部署哈 首先在本地打包vue项目,打包成功后,项目中会多出一个dist 文件夹 把dist上传到服务器 配置nginx配置文件,新建一个othercon ...

  8. 将项目部署到nginx服务器上

    一. 介绍 服务器:本质是一台电脑,没有显示器,就是主机,24小时开机,为用户提供远程服务. 市面上的服务器:阿里云/华为云/腾讯云(配置) 主机->操作系统->window(.net)/ ...

  9. Vue2+Node.js前后端分离项目部署到云服务器

    本文参考教程: NodeJS项目部署到阿里云ECS服务器全程详解 - 知乎本文详细介绍如何部署NodeJS项目到阿里云ECS上,以及本人在部署过程中所遇到的问题.坑点和解决办法,可以说是全网最全最详细 ...

最新文章

  1. 安装rebar时提示Uncaught error in rebar_core
  2. linux insmod命令参数及用法详解--linux加载模块命令
  3. elasticsearch collapse折叠聚合
  4. UI层调用WCF服务实例(源码)
  5. 区间DP初探 P1880 [NOI1995]石子合并
  6. 删库跑路事件发生,SaaS 云服务如何守护数据安全?
  7. Ext.gridPanel中内容对齐
  8. 非参数统计 作业(第五章第六章)
  9. 谷歌软件工程师_这是我曾经在Google担任软件工程师的简历。
  10. 苹果的文件传输服务器叫我们名字,苹果:即使是我们也无法对设备传输数据解密...
  11. 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“
  12. Sqlmap -- POST注入
  13. PyQt5学习—2时间与日期
  14. linux u识别,基于uCLinux的纸币识别器底层系统研究和实现
  15. 用群论证明费马小定理和欧拉定理
  16. 操作系统笔记(二):进程和线程
  17. MOOS-ivp 实验三 MOOS简介(2)
  18. 东华大学计算机学院迎新晚会,东华大学2014-2015学年迎新晚会
  19. 根据银行卡号查询该银行卡的签发银行
  20. Spring认证中国教育管理中心-Spring Data MongoDB教程五

热门文章

  1. Mac如何删除在磁盘空间中的可清除空间以及Mac开机时进度条卡100%的解决办法
  2. rtmp推流如何进行鉴权
  3. ssm+java计算机毕业设计校园跑腿网站s03k7(程序+lw+源码+远程部署)
  4. win7 休眠锁定计算机,win7怎么设置待机时间
  5. 修改已释放的传输请求
  6. 一个星期快速自学java编程高级语言干货笔记 -网络编程
  7. C#报错:Could not find any resources appropriate for the specified culture or the neutral culture
  8. EasyExcel 下载demo(zip压缩包)
  9. 【建议收藏】超详细的Canal入门,看这篇就够了。
  10. Golang网络聊天室案例