node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins
前言
每次项目代码更新后都要重新部署,如果只有一台服务器还好.
但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了.
这里用几篇文章来记录一下如何使用Jenkins,Docker,github来搭建一个自动化部署的node项目.
思路
- 使用git进行版本控制,当项目更新时就触发 Jenkins的构建任务
- Jenkins 从 git 拉取最新的代码
- 为了避免多个节点的运行环境差异,所以需要使用 Docker 来将我们的 node 项目打包为镜像
- 将镜像通过脚本部署到所有的子节点上
安装Docker
本人使用的阿里云的服务器,操作系统Centos7
yum install docker
安装docker

docker 安装完成后需要启动docker服务
service docker start

docker启动完成后,下一步就需要启动docker容器
ps -ef|grep docker

Docker上安装Jenkins
docker 安装好后下一步就是安装 Jenkins 镜像
在安装前需要创建一个目录用于映射 Jenkins 的镜像中的文件,以便安装好 Jenkins 后查看初始密码等操作
创建目录
mkdir /var/jenkins_home
然后修改该目录的权限,不然很可能在 Jenkins 镜像映射文件时没有操作权限,导致镜像启动秒退
chown -R 1000:1000 /var/jenkins_home

然后我们就可以拉取 Jenkins 镜像了
docker pull jenkins/jenkins:lts

然后我们可以通过以下命令来查看已经存在的镜像
docker images

接下来就是启动 Jenkins 容器了
命令如下:
docker run -d --name myjenkins -p 9000:8080 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
该命令的含义大致如下:
- 在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为服务器的 9000 端口(因为Jenkins的默认端口为8080),并且把服务器上的/var/jenkins_home目录挂在到docker容器上的/var/jenkins_home目录
-d后台运行docker容器--name为容器起个别名-pdocker容器端口映射-v文件挂载

如果出现

这样的报错信息,并且容器已经成功创建的情况下,说明可能是centos系统版本兼容性问题
使用下方代码后再运行即可解决:
yum update
那么怎么判断是否成功呢?
使用以下代码可以查看docker已经创建的容器:
docker ps -a

如上图所示,我们jenkins已经创建并运行了 3 分钟了
然后我们再去看看之前创建用于挂载文件的文件夹

发现其中已经存在了许多 Jenkins 的文件,那么我们就可以开始使用Jenkins了
访问: 你的服务器IP加上映射的端口就行了

Jenkins配置
首先我们需要找到 Jenkins 的初始化密码
所以如果之前我们没有将Jenkins的目录挂载到容器外,那么我们还需要进入容器进行查找
现在我们就只需要到你的服务器上刚才映射的目录去找就行了

然后将其中的内容输入输入框
接下来你会看到下面的页面

这里是让你选择安装的插件,如果是没有特殊需求,直接选择左边的安装建议的插件即可
如下图所示

这里插件没有安装成功的不用太在意,如果有强迫症的话可以重新安装插件即可
如果失败很多次,那么就需要将Jenkins的插件镜像站换成国内的镜像站
先点击 Continue
然后创建账号

完成后我们就先把刚才插件的问题解决一下
在系统设置的插件管理中

点击进入后选择高级选项

将升级站点的url替换为
http://mirror.esuni.jp/jenkins/updates/update-center.json
保存后重新安装即可
node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins的更多相关文章
- node项目自动化部署--基于Jenkins,Docker,Github(2)配置节点
上一篇文章中准备工作已经完成的差不多了 这一篇主要讲解 Jenkins 上面的相关配置 为了让代码部署到所有的子节点上 所以我们首先需要在 Jenkins 中添加我们希望代码部署到的节点 配置节点 首 ...
- node项目自动化部署--基于Jenkins,Docker,Github(3)自动化部署
GitHub仓库 由于现在的代码基本上都是多人合作开发,所以肯定会用到像 git 这样的版本控制工具 所以这里使用 GitHub 来做一个演示 首先我们需要在github上新建一个仓库 点击New来新 ...
- docker jenkins 前端node项目 自动化部署异常 env: ‘node’: No such file or directory
出现问题是docker jenkins 里面没有自动安装node导致找不到这个Node命令 解决方案:手动安装nodejs # 进入jenkins对应容器中 # docker exec -it [对应 ...
- .Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用
安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Contai ...
- 部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了
部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了 安大虎 momenta 中台开发工程师 6 人赞同了该文章 就目前的形势看,一家公司的运维体系不承载在 Do ...
- jenkins+windows+springboot+.net项目自动化部署图文教程
之前一直在linux中使用jenkins部署程序,正好现在的项目包括了winfrom程序,所以需要部署到windows系统中 jenkins官网:https://jenkins.io/ 下载之后运行j ...
- jenkins实现maven项目自动化部署tomcat
最近公司有用到jenkins实现自动化部署,这里我对新的东西也是比较感兴趣,就用了点时间尝试了一下,虽然网上有很多这种例子,但是可能有些细节我也走了一些弯路.在这里记录一下,方便下次用到. 实现环境: ...
- Jenkins持续集成实践之java项目自动化部署
关于Linux安装Jenkins可以参考我的这篇博文Ubuntu16.04环境安装jenkins 1.安装部署插件 进入插件管理,并搜索该插件Deploy to container Plugin进行安 ...
- gitlab+jenkins+pm2+rsync实现node的自动化部署
环境配置 jenkins java环境 yum install -y java 安装jenkins wget -O /etc/yum.repos.d/jenkins.repo http://pkg.j ...
随机推荐
- 关于Linux虚拟化技术KVM的科普 科普四(From humjb_1983)
另一组关于KVM的分析文档,虚拟化相关概念.KVM基本原理和架构一-概念和术语.KVM基本原理和架构二-基本原理.KVM基本原理及架构三-CPU虚拟化.KVM基本原理及架构四-内存虚拟化.KVM基本原 ...
- 关于checkpoint
Ⅰ.Checkpoint 1.1 checkpoint的作用 缩短数据库的回复时间 缓冲池不够用时,将脏页刷到磁盘 重做日志不可用时,刷新脏页 1.2 展开分析 page被缓存在bp中,page在bp ...
- 玩转SSH--Hibernate(三)---手动修改数据库,前台查询信息不同步更新问题解决方法
在用hibernate时遇到一个挺纠结的问题,就是我在手动修改数据库的信息后,前台页面查询到的信息还是之前的结果,一开始以为是缓存的问题,经过多次修改和在网上查询资料,最终发现可能是hibernate ...
- spring的依赖注入是什么意思
最近学习spring框架,对依赖注入有些模糊,遂上网翻阅资料,做了下列总结,原博客为CSDN 南夏的 spring的依赖注入是什么意思,侵删! Spring 能有效地组织J2EE应用各层的对象.不管是 ...
- BZOJ_3993_[SDOI2015]星际战争_二分+网络流
BZOJ_3993_[SDOI2015]星际战争_二分+网络流 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进 ...
- 集成支付宝SDK流程
5.2 SDK集成流程 5.2.1 iOS 解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到iOS的压缩文件(文件名是支付宝移动支付SDK 标准版(iOS).z ...
- 前端学习笔记之CSS选择器
阅读目录 一 基本选择器 二 后代选择器.子元素选择器 三 兄弟选择器 四 交集选择器与并集选择器 五 序列选择器 六 属性选择器 七 伪类选择器 八 伪元素选择器 九 CSS三大特性 一 基本选择器 ...
- C# - 如何让类型可以比较
IComparable<T> .NET 里,IComparable<T>是用来作比较的最常用接口. 如果某个类型的实例需要与该类型的其它实例进行比较或者排序的话,那么该类型就可 ...
- .NET Core IdentityServer4实战 第一章-入门与API添加客户端凭据
内容:本文带大家使用IdentityServer4进行对API授权保护的基本策略 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 本文将要讲述如何使用IdentityServer4 ...
- requests使用“proxy”代理访问接口
在requests中使用proxy代理访问 使用前先更新requests版本为支持socks的版本. 先pip安装对应库: >> pip install -U requests[so ...