jenkins+docker+nodejs

栏目: Node.js · 发布时间: 5年前

内容简介:一步一步打造jenkins+docker+nodejs项目的自动部署环境介绍jenkins+docker+nodejs 自动部署
编辑推荐:
本文来自于csdn,本文详细介绍了如何实现,git push后,jenkins开始自动构建的步骤的相关内容。

一步一步打造jenkins+docker+nodejs项目的自动部署环境

介绍

jenkins+docker+nodejs 自动部署

亮点

采用 shell 自定义脚本,控制集成部署环境更加方便灵活

如果服务器更换,重新部署的工作量会比较小

涉及的 docker 命令,会有讲解(不知道算不算亮点)

前提

代码通过git管理,放在了码云上(放在github或者其他平台也都可以)

服务器用的亚马逊aws(阿里云,青云也一样)

服务器用的ubuntu 16.04 (服务器系统不同,只是某些shell命令不同而已,windows服务器用户,呃,我敬你是条汉子)

客户端用的mac

docker镜像平台为dockerhub

准备

服务器开通SSH

服务器安装Docker

掌握基本的shell命令(本文出现的shell命令都会进行说明,cd啥的就不说了...)

开始

docker运行jenkins

服务器 安装docker

mac服务器安装教程

linux服务器安装教程

windows服务器安装教程

服务器拉取docker jenkins镜像:docker pull jenkins:latest

拉取jenkins latest版本镜像

docker pull jenkins:2.7.4 拉取jenkins 2.7.4版本镜像

服务器运行dokcer jenkins容器:sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest

这句命令的意思是:在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为49002端口,并且把服务器上的/var/jenkins_node目录挂在到docker容器上的/var/jenkins_home目录

-d 后台运行docker容器

如果不加-d则,容器运行会占用此终端,如果终端关闭,则容器也相应关闭,jenkins就无法访问了。加上-d,容器会在后台运行。

--name 为容器起个别名

如果不起别名,则系统会默认分配一个随机别名,类似gklasd_sdfwe。起了别名后,后续会通过该别名管理该docker容器,也就是管理jenkins。

-p docker容器端口映射

jenkins服务是运行在docker里的,docker默认不对外暴露端口的

-v 文件挂载

如果不挂载,则jenkins所有log、用户配置文件都会在docker容器内,如果容器销毁,则jenkins得重新配置一遍。挂载出来方便jenkins迁移以及管理

运行成功截图

jenkins+docker+nodejs

jenkins run

查看你服务器上的的/var/jenkins_node文件夹,当出现下图所有文件时,则说明jenkins启动成功,否则再等等...30秒左右即可

jenkins+docker+nodejs

不出意外,浏览器访问http://host:49002 ,会出现如下界面

jenkins+docker+nodejs

打开initialAdminPassword文件,复制文件内容 initialAdminPassword文件位置为:

jenkins+docker+nodejs

为了方便,用mac演示一下

initialAdminPassword文件内容粘贴到Administrator password里

如果对于jenkins比较熟悉,下面7,8自己随意

jenkins+docker+nodejs

等...

jenkins+docker+nodejs

设置admin user

jenkins+docker+nodejs

node项目配置

示例项目: https://git.oschina.net/ryzecode/HelloWorld_Node.git

比正常的node项目在根目录多一个Dockerfile文件

jenkins配置

插件安装

首页,点击系统管理 --> 管理插件

jenkins+docker+nodejs

选择“可选插件”

jenkins+docker+nodejs

右上角过滤SSH,--> 选择Publish Over SSH -->点击 直接安装

jenkins+docker+nodejs

等待安装完成

jenkins+docker+nodejs

系统设置

首页,点击系统管理 --> 系统设置

jenkins+docker+nodejs

拉到最下面找到 "Publish over SSH" , 设置服务器的SSH信息

jenkins+docker+nodejs

项目配置

首页,点击左上角”新建”

jenkins+docker+nodejs

General: 只填 项目名称即可

jenkins+docker+nodejs

源码管理: 填写Git信息

jenkins+docker+nodejs

如果Git项目为私有项目,则需要点击Add添加你的Git账号,完成之后在这里选择你的Git账号

jenkins+docker+nodejs

构建环境:参照下图

jenkins+docker+nodejs

图中代码如下:

sudo docker stop node || true \

&& sudo docker rm node || true \

&& cd /var/jenkins_node/workspace/node \

&& sudo docker build --rm --no-cache=true -t node - < Dockerfile \

&& sudo docker run -d --name node -p 3000:3000 -v /var/jenkins_node/workspace/node:/home/project node

保存,返回到首页

选择刚刚创建的项目,点击"立即构建"

此时服务器本地硬盘上,/var/jenkins_node/workspace/下应该有node(你创建的jenkins项目名)文件夹

/var/jenkins_node/ 目录内容应该如下图

jenkins+docker+nodejs

为了方便查看,继续用mac演示目录

构建成功,浏览器输入 http://host:3000 应该能看到下图内容

jenkins+docker+nodejs

自动部署

如果想要git push,jenkins就自动部署,那就继续往下看...

jenkins --> 首页 --> 用户

jenkins+docker+nodejs

设置 --> 点击 "show API Token"

jenkins+docker+nodejs

复制API Token内容

jenkins+docker+nodejs

返回首页 --> node(项目名称) --> 配置 --> 构建触发器 --> 选择 "触发远程构建" -->粘贴"API Token"内容到"身份验证令牌"

jenkins+docker+nodejs

登陆git平台,找到你的项目,选择管理,选择webhook

jenkins+docker+nodejs

URL 中 node 请替换为你在jenkins上创建的项目名称

token为复制的 API Token内容

此时你git push,会发现jenkins并没有自动构建,是因为jenkins的安全策略导致的,还需要如下设置

jenkins首页,选择 系统管理-->Configure Global Security(系统设置下面那个) 进行如下设置

jenkins+docker+nodejs

至此,已完成 git push 后,jenkins 自动构建自动部署。


以上所述就是小编给大家介绍的《jenkins+docker+nodejs》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript Web应用开发

JavaScript Web应用开发

[阿根廷] Nicolas Bevacqua / 安道 / 人民邮电出版社 / 2015-9 / 59.00元

本书是面向一线开发人员的一本实用教程,对最新的Web开发技术与程序进行了全面的梳理和总结,为JavaScript开发人员提供了改进Web开发质量和开发流程的最新技术。本书主要分两大块,首先是以构建为目标实现JavaScript驱动开发,其次介绍如何管理应用设计过程中的复杂度,包括模块化、MVC、异步代码流、测试以及API设计原则。一起来看看 《JavaScript Web应用开发》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具