成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker+Jenkins+Nodejs+Git+Webhook自動(dòng)部署

tuomao / 2334人閱讀

1.準(zhǔn)備環(huán)境

一臺(tái)有網(wǎng)絡(luò)的Linux 服務(wù)器

Docker rpm安裝包,依賴包 libcgroup

jdk1.7 OR 1.8環(huán)境下載

Jenkins WAR包下載

NodeJs 源碼包下載

依賴下載地址:

https://pkgs.org/download/

https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/

2.安裝Docker
rpm -ivh libcgroup-0.40.rc1-23.el6.x86_64.rpm 
rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm 
3.編寫Dockerfile
FROM ubuntu 

ADD jdk-8u171-linux-x64.tar.gz /usr/local/

RUN mv /usr/local/jdk1.8.0_171 /usr/local/java

ADD apache-tomcat-8.5.30.tar.gz /usr/local/

RUN mv /usr/local/apache-tomcat-8.5.30 /usr/local/tomcat

COPY jenkins.war /usr/local/tomcat/webapps/

ADD node-v8.11.1.tar.gz /root/

RUN apt-get update

RUN apt-get install -y python git ssh gcc g++ make

RUN /root/node-v8.11.1/configure && make -C /root/node-v8.11.1/ && make install -C /root/node-v8.11.1/ && rm -rf /root/node-v8.11.1/

ENV JAVA_HOME /usr/local/java

ENV JRE_HOME $JAVA_HOME/jre

ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 8080 3000 22

ENTRYPOINT ["java","-jar","/usr/local/tomcat/webapps/jenkins.war"]

(這里就不對(duì)Dockerfile和語(yǔ)法做解釋了,可以自行查閱資料)

本來是要用tomcat啟動(dòng)的,但容器啟動(dòng)后tomcat沒啟動(dòng),試了很多種方法都不行,最后只能改成java -jar

將Dockerfile與所有的軟件包放在一起然后執(zhí)行命令

docker build -t jenkins ./
-t jenkins為鏡像的TAG,"./"為Dockerfile與軟件包的路徑,最后看到Successfully說明成功

(Docker基礎(chǔ)鏡像中有jenkins的鏡像,直接執(zhí)行docker pull jenkins就可以了,我為什么要用WAR包安裝,是因?yàn)閖enkins鏡像的登陸用戶為jenkins,登陸到容器后沒有權(quán)限很多事情都做不了)

4.運(yùn)行鏡像

這時(shí)候運(yùn)行docker images應(yīng)該就會(huì)有一個(gè)叫jenkins的鏡像

執(zhí)行命令

docker run -d -p 8080:8080 -p 50000:50000 -p 3000:3000 -p 50001:22 -v /var/jenkins_home:/root/.jenkins/ --name jenkins_node jenkins

(3000端口是自己設(shè)置的nodejs程序端口)

run 運(yùn)行docker鏡像,-d 以后臺(tái)守護(hù)進(jìn)程運(yùn)行 ,-p 將容器端口開放(服務(wù)器端口:容器端口) , -v 掛載分區(qū)(服務(wù)器分區(qū):容器分區(qū)) --name 指定容器名稱,最后的jenkins為鏡像包名

如果出現(xiàn)這種問題,重啟docker服務(wù),在嘗試啟動(dòng)容器,如問題未能解決就將防火墻端口開放,然后重啟docker服務(wù)

以Centos7為例

firewall-cmd --zone=public --add-port=50001/tcp --permanent
firewall-cmd --reload
systemctl restart docker
docker start jenkins_node

防火墻對(duì)docker的影響很大,在防火墻開啟的情況下會(huì)遇到很多奇怪的錯(cuò)誤,而且這些錯(cuò)誤基本上查不到?jīng)Q絕辦法,能查到的只有與你遇到的問題無關(guān)的,但這些問題基本上都是與連接有關(guān)的,比如連不上主機(jī)或找不到主機(jī),解析不了網(wǎng)址之類的,如果在防火墻開啟的情況下遇到這類問題就先檢查防火墻,然后重啟docker服務(wù)和容器

5.jenkins配置 jenkins安裝

打開瀏覽器并輸入:"服務(wù)器地址:8080"訪問,出現(xiàn)如下頁(yè)面

將服務(wù)器"/var/jenkins_home/secrets/initialAdminPassword"文件的內(nèi)容復(fù)制到輸入框,點(diǎn)擊繼續(xù)

點(diǎn)擊左邊的推薦安裝,等待安裝完成

設(shè)置Admin user

jenkins插件安裝配置

點(diǎn)擊 系統(tǒng)管理 --> 插件管理

選擇 “可選插件”

右上角搜索SSH,--> 選擇Publish Over SSH -->點(diǎn)擊 直接安裝

等待安裝完成

安裝成功后,點(diǎn)擊 系統(tǒng)管理 --> 插件管理

拉到最下面找到 "Publish over SSH" , 設(shè)置服務(wù)器的SSH信息


到服務(wù)器執(zhí)行docker exec -it jenkins_node bash登陸到容器

重置用戶密碼passwd

安裝一個(gè)編輯器apt-get install -y vim

安裝完之后vim /etc/ssh/sshd_config編輯ssh配置文件

找到PermitRootLogin prohibit-password改為PermitRootLogin yes保存文件

重新啟動(dòng)sshservice ssh restart

設(shè)置ssh開機(jī)自啟動(dòng)update-rc.d ssh defaults

生成ssh秘鑰ssh-keygen -t rsa什么都不要輸直接回車直到完成就好

切換到ssh秘鑰目錄cd ~/.ssh/會(huì)有兩個(gè)文件"id_rsa"(秘鑰)和"id_rs a.pub"(公鑰)文件

將公鑰復(fù)制cp id_rsa.pub authorized_keys

復(fù)制id_rsa(秘鑰)文件中的內(nèi)容

到j(luò)enkins ‘Publish over SSH’ 設(shè)置找到SSH Servers 點(diǎn)擊 "增加 --> 高級(jí)"

Name : ssh server名稱隨意設(shè)置

Hostname : 服務(wù)器ip地址

Username : 容器用戶名

選中 Use password authentication, or use a different key

Passphrase / Password : 容器用戶密碼

Key : 將剛剛復(fù)制的id_rsa(秘鑰)內(nèi)容粘貼到這里

Port : 設(shè)置成鏡像運(yùn)行命令中將22端口映射為50001的端口

點(diǎn)擊Test Configuration出現(xiàn)Success成功

如果出現(xiàn)下圖請(qǐng)檢查authorized_keys文件名稱或內(nèi)容是否正確,和復(fù)制的私鑰內(nèi)容是否正確,docker容器ssh是否運(yùn)行。

如果出現(xiàn)下圖就到宿主機(jī)開放50001端口

保存

6.jenkins項(xiàng)目配置

首頁(yè),點(diǎn)擊左上角”新建”

General: 只填 項(xiàng)目名稱即可

源碼管理: 填寫Git信息
Repository URL : 填寫項(xiàng)目git地址
Credentials : 如果有用戶名密碼,點(diǎn)擊add添加用戶信息,輸入用戶名密碼

如果出現(xiàn)圖中CAfile錯(cuò)誤就到容器中執(zhí)行git config --global http.sslverify false關(guān)閉https證書檢測(cè),然后回到頁(yè)面將Repository URL中的地址剪切并重新粘貼

構(gòu)建環(huán)境選中‘Send files or execute commands over SSH before the build starts’
Remote directory : 執(zhí)行此命令的文件夾位置,一般為"./",意思是在項(xiàng)目目錄
Exec command :所執(zhí)行的構(gòu)建命令,例如"npm start"

保存,返回首頁(yè),并構(gòu)建剛剛創(chuàng)建的項(xiàng)目

7.自動(dòng)部署

jenkins --> 首頁(yè) --> 用戶

設(shè)置 --> 點(diǎn)擊 "show API Token"

復(fù)制API Token內(nèi)容

返回首頁(yè) --> (自己的項(xiàng)目) --> 配置 --> 構(gòu)建觸發(fā)器 --> 選擇 "觸發(fā)遠(yuǎn)程構(gòu)建" -->粘貼"API Token"內(nèi)容到"身份驗(yàn)證令牌"

登陸git平臺(tái),找到你的項(xiàng)目,選擇管理,選擇webhook

URL 中 node 請(qǐng)?zhí)鎿Q為你在jenkins上創(chuàng)建的項(xiàng)目名稱

token為復(fù)制的 API Token內(nèi)容

此時(shí)你git push,會(huì)發(fā)現(xiàn)jenkins并沒有自動(dòng)構(gòu)建,是因?yàn)閖enkins的安全策略導(dǎo)致的,還需要如下設(shè)置。
jenkins首頁(yè),選擇 系統(tǒng)管理-->Configure Global Security(系統(tǒng)設(shè)置下面那個(gè)) 進(jìn)行如下設(shè)置

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27298.html

相關(guān)文章

  • 使用Jenkins進(jìn)行持續(xù)部署(PHP代碼)

    摘要:查看初始密碼,這里我們的容器是首次進(jìn)入,需要先安裝插件,這里我們選擇手工的去選擇一些插件就行了,因?yàn)槲覀內(nèi)绻皇羌傻脑捰貌涣硕嗌俨寮寮x擇我就不截圖說明了,和里面得插件可以先取消。 在docker項(xiàng)目中單機(jī)構(gòu)建jenkins使用gitlab的webhook對(duì)項(xiàng)目進(jìn)行持續(xù)部署注意本次項(xiàng)目是php項(xiàng)目沒有build和test部分,至于test部分我們下一節(jié)進(jìn)行,本次只是進(jìn)行一個(gè)提交部署...

    fjcgreat 評(píng)論0 收藏0
  • Docker + Jenkins + webhooks 自動(dòng)部署基礎(chǔ)實(shí)踐

    摘要:自動(dòng)部署基礎(chǔ)實(shí)踐熟悉的基本操作實(shí)現(xiàn)本地后自動(dòng)構(gòu)建部署服務(wù)此實(shí)踐用于優(yōu)化自己在實(shí)際工作中的工作流在本地開發(fā)到服務(wù)器登錄云服務(wù)器或者簡(jiǎn)化流程后本地開發(fā)云服務(wù)器自動(dòng)構(gòu)建部署本實(shí)踐將結(jié)合技術(shù)來實(shí)現(xiàn)云服務(wù)器對(duì)各種環(huán)境的切換與部署。 Docker + Jenkins + webhooks 自動(dòng)部署基礎(chǔ)實(shí)踐 熟悉 jenkins 的基本操作 ?? 實(shí)現(xiàn)本地 git push 后 jenkins 自...

    Charlie_Jade 評(píng)論0 收藏0
  • 手把手教你用JenkinsDocker的方式自動(dòng)發(fā)布dotnet core程序

    摘要:部分首先我們要有個(gè)咯下載鏈接我們安裝官網(wǎng)教程安裝好安裝教程略嗯不是說好手把手么你妹的好好好我們還是來手把手教程好了首先安裝添加安裝源之后直接就好下面是的安裝命令其他系統(tǒng)自己玩一下就好下載啟動(dòng)下載鏈接在這里面找最新的下載我當(dāng)前 Jenkins部分 首先,我們要有個(gè)Jenkins咯,下載鏈接:https://jenkins.io/download/ 我們安裝官網(wǎng)教程安裝好jenkins,安...

    stackvoid 評(píng)論0 收藏0
  • 一套基礎(chǔ)自動(dòng)部署搭建過程

    摘要:?jiǎn)栴}背景公司初創(chuàng)技術(shù)團(tuán)隊(duì),沒有任何基礎(chǔ)設(shè)施的情況下,需要搭建一系列管理以及自動(dòng)化部署等工具所以引發(fā)了下面一系列的部署過程,歷時(shí)兩天,中間也是碰到各種問題,但最終把基本工具全部搭建成功,耶,下面帶大家一起看下此次搭建過程。 問題背景 公司初創(chuàng)技術(shù)團(tuán)隊(duì),沒有任何基礎(chǔ)設(shè)施的情況下,需要搭建一系列code管理以及自動(dòng)化部署等工具....所以引發(fā)了下面一系列的部署過程,歷時(shí)兩天,中間也是碰到各種...

    mzlogin 評(píng)論0 收藏0
  • Spring Cloud【使用jenkins持續(xù)部署】Gogs+jenkins+Docker Swa

    摘要:而所謂的持續(xù),就是說每完成一個(gè)完整的部分,就向下個(gè)環(huán)節(jié)交付,發(fā)現(xiàn)問題可以馬上調(diào)整。那么每完成一部分就測(cè)試,這是持續(xù)部署。這是一個(gè)免費(fèi)的源代碼,可以處理任何類型的構(gòu)建或持續(xù)集成。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。 導(dǎo)讀: 很久沒有更新文章了 最近公司在使用Spring Cloud構(gòu)建的項(xiàng)目中經(jīng)常會(huì)持續(xù)發(fā)布變更頻繁,一天中會(huì)出現(xiàn)發(fā)布多次的情況 在這種情況下對(duì)測(cè)試環(huán)境做了改造 ...

    王笑朝 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<