Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。容许持续集成和持续交付项目,不管用的是什么平台,能够处理任何类型的构建或持续集成。php
开源的java语言开发持续集成工具,支持CI,CD; 易于安装部署配置:可经过yum安装,或下载war包以及经过docker容器等快速实现安装部署,可方便web界面配置管理; 消息通知及测试报告:集成RSS/E-mail经过RSS发布构建结果或当构建完成时经过e-mail通知,生成JUnit/TestNG测试报告; 分布式构建:支持Jenkins可以让多台计算机一块儿构建/测试; 文件识别:Jenkins可以跟踪哪次构建生成哪些jar,哪次构建使用哪一个版本的jar等; 丰富的插件支持:支持扩展插件,你能够开发适合本身团队使用的工具,如git,svn,maven,docker等。
mkdir -P /opt/data/jenkins_home sudo docker run -d -p 8099:8080 -v /opt/data/jenkins_home:/var/jenkins_home --name my_jenkins jenkins:latest -d 是后台启用jenkins服务 -p 是端口映射 -v 是数据挂载 --name 是为容器命名
(from wiki)html
Nginx能够部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion Passenger模块的动态HTTP内容,并可做为软件负载均衡器。[11]java
Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构[12]能够在高负载下提供更可预测的性能。[13]nginx
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具备占有内存少,稳定性高等优点。与旧版本(<=2.2)的Apache不一样,Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,因此并发服务能力更强。总体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操做系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操做系统下效率至关高。同时Nginx在OpenBSD或FreeBSD操做系统上采用相似于epoll的高效事件模型kqueuegit
Nginx 能够在Linux上自行编译安装也能够经过docker进行执行,这里提供docker-compose的脚本github
# docker-compose up -d version: '2' services: nginx: image: nginx restart: always volumes: - ./nginx.conf:/etc/nginx/nginx.conf ports: - 80:80 - 8086:8086 networks: - glodon_network
# file_name:nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; server { listen 80; server_name fuzhou20.vicp.net; #location ^~/github-webhook/ { # proxy_pass http://192.168.31.246:5700; # if ($request_method !~ ^(POST)$) { # return 444; # } #} location / { proxy_pass http://192.168.31.246:5700; } } }
以上两个配置文件会在nginx文件夹里体现web
花生壳在这里做为内网穿透 内网端口映射的工具的,由于公司内部的网络没有暴露在公网上须要花生壳做为间接的内网映射工具使得能够接收到github 发过来的hook信息docker
下载安装后启动 配置花生壳映射到 部署Nginx的 80端口上shell
花生壳 3.0 for Linux 相关安装使用文档 npm
系统管理>系统配置> Publish over SSH >Add
填写必填项、点击Advanced勾选使用密码验证填写密码选择验证
Remote Directory 通常设定为用户目录
系统管理>插件管理>available
系统管理>全局工具配置> NodeJS
Repository URL 源地址为 https://github.com/TangUsers/...
若是你的帐号没有在内能够选择ADD添加你的帐号密码
这里介绍的是以Node为基础的的编译 须要选择配置Nginx版本
因为磁盘空间有限,开发环境下须要将
不然工件占满空间
# 跳转到代码目录 cd frontend # 覆盖配置脚本 echo "export let ROOT" > ./src/config/url.js echo "ROOT = 'http://192.168.31.54:8000' // dev" >> ./src/config/url.js # npm 依赖安装 npm install # 编译包 npm run build
编译上选择
的链接用于上传编译过的包
根据前面配置的SFTP主机 将编译后的工件上传到对应的目录
当前目录以gitpull下来后的工做空间的目录为准
Remove prefix 上传后的目录
Remote directory 远程目录
这里最终工件会上传到 /home/emsoft/jyjy_front_end/new-build
SFTP主机的当前目录是前面主机配置的目录
rm -rf ~/jyjy_front_end/build mv -f ~/jyjy_front_end/new-build ~/jyjy_front_end/build sudo nginx -s reload