Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目。这一节,我们继续扩展功能,增加对Nodejs的支持,实现nodejs项目构建、并打包成docker镜像和自动部署。
1. 配置Nodejs环境
1.1 安装nodejs插件
打开系统管理——管理插件——可选插件,搜索NodeJS,选择NodeJS Plugin安装
1.2 配置nodejs 版本
系统管理 —— 全局工具配置 —— NodeJS,选择安装nodejs,选择当前最新版本9.4,命名NodeJS 9.4。
2. 配置项目
2.1 新建项目
新建jenkins项目,选择自由项目,按前文说明配置好SVN、触发器。
在构建环境里,选择Provide Node & npm bin/ folder to PATH,选择我们配置的9.4版本nodejs
2.2 配置构建命令
一般是通过npm命令构建,我们选择增加构建步骤 —— Excute shell,输入构建命令:
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
cnpm install cnpm run build
注意,这里为了构建更快,选择通过alias增加cnpm指令,指定使用淘宝的仓库。
2.3 构建docker镜像
由于我们构建出来的已经是可访问的资源了,放在dis目录,所以我们可以基于nginx作为基础镜像。
编写DockerFile:
FROM nginx
ADD ./dist /usr/share/nginx/html
EXPOSE 80
然后,增加构建步骤,ADD build/publish docker image
设置image:192.168.86.8:5000/allinone-web-cicd
勾上push image,会自动push到192.168.86.8:5000仓库
2.4 自动部署镜像
和上文一样,这里继续使用ssh实现docker镜像部署。
增加构建步骤,Execute shell script on remote host using ssh:
选择docker swarm的manager机器,输入命令:
docker service rm allinone-web-cicd
docker service create --name allinone-web-cicd --replicas 1 --publish 10081:80 192.168.86.8:5000/allinone-web-cicd
这次,我们使用docker service来实现部署,先service rm掉老服务,然后create新服务。
3.测试构建
点击立即构建:
稍等片刻,就构建成功了;
[SSH] executing...
allinone-web-cicd
mj9dwq00ath03i05b8bfe5plx
overall progress: 0 out of 1 tasks
1/1: overall progress: 0 out of 1 tasks overall progress: 0 out of 1 tasks overall progress: 0 out of 1 tasks overall progress: 0 out of 1 tasks overall progress: 0 out of 1 tasks overall progress: 0 out of 1 tasks overall progress: 1 out of 1 tasks verify: Waiting 5 seconds to verify that tasks are stable... verify: Waiting 5 seconds to verify that tasks are stable... verify: Waiting 5 seconds to verify that tasks are stable... verify: Waiting 5 seconds to verify that tasks are stable... verify: Waiting 5 seconds to verify that tasks are stable... verify: Waiting 4 seconds to verify that tasks are stable... verify: Waiting 4 seconds to verify that tasks are stable... verify: Waiting 4 seconds to verify that tasks are stable... verify: Waiting 4 seconds to verify that tasks are stable... verify: Waiting 4 seconds to verify that tasks are stable... verify: Waiting 3 seconds to verify that tasks are stable... verify: Waiting 3 seconds to verify that tasks are stable... verify: Waiting 3 seconds to verify that tasks are stable... verify: Waiting 3 seconds to verify that tasks are stable... verify: Waiting 3 seconds to verify that tasks are stable... verify: Waiting 2 seconds to verify that tasks are stable... verify: Waiting 2 seconds to verify that tasks are stable... verify: Waiting 2 seconds to verify that tasks are stable... verify: Waiting 2 seconds to verify that tasks are stable... verify: Waiting 2 seconds to verify that tasks are stable... verify: Waiting 1 seconds to verify that tasks are stable... verify: Waiting 1 seconds to verify that tasks are stable... verify: Waiting 1 seconds to verify that tasks are stable... verify: Waiting 1 seconds to verify that tasks are stable... verify: Waiting 1 seconds to verify that tasks are stable... verify: Service converged [SSH] completed [SSH] exit-status: 0 Finished: SUCCESS
这个时候,访问swarm集群的任一http://ip:10081,就可以看到效果了。
转载于:https://www.cnblogs.com/adolfmc/p/9007165.html
Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目相关推荐
- centos下搭建Jenkins持续集成环境(安装jenkins)
centos下搭建Jenkins持续集成环境(安装jenkins) 1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这 ...
- Jenkins持续集成环境, 如何自定义 maven repositories
假设自定义的仓库路径为"/opt/repository",那么在"系统管理-系统设置"中,修改"全局MAVEN_OPTS"的值为如下的内容: ...
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...
- 一步步部署基于Windows系统的Jenkins持续集成环境
如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Lin ...
- Jenkins持续集成环境之插件管理和角色管理
1.持续集成环境-Jenkins插件管理 Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用.例如从Gitlab拉取代码,使用Maven构建项目等 功能需要依靠插件完成.接下来演示 ...
- Jenkins 持续集成环境快捷部署
搭建持续集成环境 jenkins + maven + svn + tomcat 实现自动编译打包部署 1.环境准备 (1)JDK1.8.0_131 #不低于1.7 ...
- Linux企业运维篇——git+gitlab+jenkins+docker构成持续集成环境
一.GitLab与jenkins Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. Jenkins是一个开源软件项目,是基于Java开发的一 ...
- Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果...
为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...
- Jenkins - 持续集成环境搭建【转】
1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...
最新文章
- C#二叉树遍历算法实现浅析
- 未能从程序集“System.ServiceModel, Version=3.0.0.0问题解决
- 识别User Agent屏蔽一些Web爬虫防采集
- 在ROS中开始自主机器人仿真 - 2 让turtlebot跑起来
- 无法隐藏php thinkphp,thinkphp 在隐藏index.php和Home模块时有问题
- 分类(二):基于向量空间模型的文本分类
- linux 常用命令04 查找和检索
- python:找出两个列表中相同和不同的元素(使用推导式)
- 一个简单的游戏服务器框架 .
- mysql order by 索引名字_MySQL如何利用索引优化ORDER BY排序语句
- Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析
- 一个@Transaction哪里来这么多坑?
- hibernate系列之一
- redis学习-主从复制Master/slave
- LeetCode 57. 插入区间(合并区间+排序)(区间重叠问题汇总)
- import keras的错误module ‘tensorflow.compat.v2‘ has no attribute ‘__internal__‘
- 那些年的草根站长,都被时代淘汰了吗?
- swfupload 无法加载_flash上传插件——swfupload 【原创】
- 亲戚关系php,中国亲戚关系解析图(大全)
- Android 修改开机画面
热门文章
- sklearn 常用模块及类与方法
- 傅里叶变换的意义 .
- 从HMM到MEMM再到CRF
- mysql 5.6.30 编译_编译安装mysql 5.6.30
- python中os.path.join()的循环用法_Python os.path.join()用法及代码示例
- PyTorch搜索Tensor指定维度的前K大个(K小个)元素--------(torch.topk)命令参数详解及举例
- pytorch——张量操作与线性回归
- 数值分析-拉格朗日中值定理与积分中值定理
- C++/C--C++中substr和Java的substring对比【转载】
- Golang的错误处理笔记