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