最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Docker+Jenkins自動(dòng)構(gòu)建部署

 更新時(shí)間:2020年03月26日 14:38:13   作者:mahy50  
這篇文章主要介紹了使用Docker+Jenkins自動(dòng)構(gòu)建部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文介紹了Docker+Jenkins自動(dòng)構(gòu)建部署,分享給大家,具體如下:

環(huán)境

  • 阿里云ESC,宿主機(jī)服務(wù)器安裝Docker,在安全規(guī)則中確認(rèn)8080端口開(kāi)啟。
  • 客戶(hù)端mac

運(yùn)行jenkins

運(yùn)行jenkins容器

在主機(jī)上創(chuàng)建目錄,并添加讀寫(xiě)權(quán)限以便jenkins應(yīng)用運(yùn)行時(shí)讀寫(xiě)文件,如:

$ mkdir -p /var/jenkins_node
$ chmod 777 /var/jenkins_node

拉取jenkins鏡像docker pull jenkins,當(dāng)前是2.60.3版。并運(yùn)行:

docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v <your_jenkins_path>:/var/jenkins_home jenkins

將之前的目錄掛載為數(shù)據(jù)卷。<your_jenkins>替換為你的目錄名,路徑需要是絕對(duì)路徑。
等待幾十秒,查看jenkins_node目錄,確認(rèn)是否有jenkins應(yīng)用生成的文件。
通過(guò)http://you_host:8080登陸查看。是否出現(xiàn)Getting Started界面。

設(shè)置賬戶(hù)及SSH登陸

在Getting Started界面會(huì)需要初始的密碼Unlock Jenkins。
密碼會(huì)在輸出終端,也可根據(jù)頁(yè)面提示到容器的jenkins_home中查找。
所以你可以

docker logs myjenkins
# 或者進(jìn)入容器
docker exec -t myjenkins /bin/bash

有了密碼,輸入后安裝建議的插件。
完畢后,根據(jù)提示設(shè)置登陸賬戶(hù)。

安裝Publish Over SSH插件

首頁(yè) -> 點(diǎn)擊系統(tǒng)管理 -> 管理插件 ->可選插件 -> 過(guò)濾:ssh -> 選擇Publish Over SSH插件,點(diǎn)擊直接安裝。

設(shè)置服務(wù)器SSH信息

首先在容器中生成rsa密鑰:

# 從宿主機(jī)客戶(hù)進(jìn)入容器,目前容器名myjenkins,也可通過(guò)docker ps 查看
$ docker exec -it myjenkins /bin/bash
# 進(jìn)入容器后建立.ssh目錄,創(chuàng)建密鑰文件私鑰id_rsa,公鑰id_rsa.pub
~ mkdir ~/.ssh && cd ~/.ssh
~ ssh-keygen -t rsa
# 一直回車(chē)即可

添加公鑰到宿主機(jī)
將id_rsa.pub中字符串添加到authorized_keys文件末尾,重啟ssh服務(wù)sudo service ssh restart
注意宿主機(jī)是否開(kāi)啟ssh服務(wù)。
可以在容器終端中使用下面的命令添加到宿主機(jī)中。也可手動(dòng)復(fù)制id_rsa.pub到宿主機(jī)的.ssh/authorized_keys文件中。

ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host>

需要修改目標(biāo)服務(wù)器的ssh配置文件,配置文件為/etc/ssh/sshd_config。設(shè)置ssh-server允許使用私鑰和公鑰對(duì)的方式登錄,然后使用sudo /etc/init.d/ssh restart命令重啟ssh服務(wù)。

添加私鑰
jenkins首頁(yè),系統(tǒng)管理 -> 系統(tǒng)設(shè)置 -> 下拉,找到Publish over SSH,填寫(xiě)Key 和 SSH Server -> 保存


高級(jí)選項(xiàng)能夠配置ssh服務(wù)器端口和超時(shí)。Test可測(cè)試,顯示success配置成功。

項(xiàng)目配置

首先,新建一個(gè)任務(wù)。填寫(xiě)項(xiàng)目名稱(chēng)。
選擇源碼管理為:Git,填寫(xiě)項(xiàng)目庫(kù)的URL。私有項(xiàng)目需要添加Git賬號(hào)。


構(gòu)建環(huán)境:選擇Send files or execute commands over SSH after the build runs,選擇服務(wù)器,以及添加Exec command。保存。


# 根據(jù)你的項(xiàng)目需要編寫(xiě)
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>

端口設(shè)置的3000,也可以另行設(shè)置-p 宿主機(jī)端口:容器端口,記得確認(rèn)服務(wù)器端口權(quán)限是否開(kāi)啟。

Dockerfile

# 根據(jù)你的項(xiàng)目需要編寫(xiě)
FROM node
RUN mkdir -p /var/www/html/ 
RUN npm install -g yarn
WORKDIR /var/www/html
EXPOSE 3000
CMD ["npm","start"]

ps: npm install -g cnpm --registry=https://registry.npm.taobao.org

返回首頁(yè),選擇項(xiàng)目,立即構(gòu)建。成功后可以通過(guò)http://you_host:3000端口查看項(xiàng)目。

配置webhook

配置webhook,實(shí)現(xiàn)自動(dòng)部署
獲取API tonken:首頁(yè) -> 用戶(hù) -> 選擇當(dāng)前的用戶(hù) -> 設(shè)置 -> 在API Tonken 項(xiàng)中點(diǎn)擊Show API Token...


添加令牌:返回首頁(yè) -> 項(xiàng)目 -> 配置 -> 構(gòu)建觸發(fā)器 -> 選擇 "觸發(fā)遠(yuǎn)程構(gòu)建" ->粘貼"API Token"內(nèi)容到"身份驗(yàn)證令牌"
登陸代碼托管平臺(tái),找到你的項(xiàng)目,選擇管理,選擇webhook,添加URL,格式http://<you_host>:<port>/job/<object_name>/build?token=<API Token>

設(shè)置jenkins安全策略

首頁(yè) -> 系統(tǒng)管理 -> Configure Global Security ->
授權(quán)策略,勾選Allow anonymous read access


至此,完成自動(dòng)化的構(gòu)建和部署。當(dāng)你推送代碼后就會(huì)實(shí)現(xiàn)自動(dòng)構(gòu)建,部署。

部署錯(cuò)誤查找

代碼推送和webhook的問(wèn)題不大,照著例子寫(xiě)不會(huì)出錯(cuò)。
容器出錯(cuò)的是鏡像構(gòu)建和鏡像運(yùn)行,以及容器間通信的問(wèn)題。

  • 鏡像構(gòu)建:查看jenkins主頁(yè)-->查看項(xiàng)目-->最近一次的構(gòu)建歷史-->查看Console Output,查看控制臺(tái)輸出。這里可以看到是哪一步出錯(cuò)。一般Sending build context to Docker daemon之前是jenkins命令問(wèn)題,之后是Dockerfile問(wèn)題。
  • 鏡像運(yùn)行:如果Console顯示鏡像構(gòu)建成功(也可docker images查看),但運(yùn)行失敗,或容器運(yùn)行后退出,如果代碼本地運(yùn)行良好,一般是CMD啟動(dòng)命令錯(cuò)誤,前臺(tái)運(yùn)行一下容器,docker run -it --name <container_name> <image_name> /bin/bash,進(jìn)入容器后手動(dòng)運(yùn)行CMD,看看日志輸出。另,docker exec -t <container_name> /bin/bash可以進(jìn)入運(yùn)行中的容器,能方便的查看代碼;docker logs <container_name>顯示運(yùn)行的日志輸出。

到此這篇關(guān)于使用Docker+Jenkins自動(dòng)構(gòu)建部署的文章就介紹到這了,更多相關(guān)Docker Jenkins自動(dòng)構(gòu)建部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose安裝redis的方法步驟

    docker-compose安裝redis的方法步驟

    本文主要介紹了docker-compose安裝redis的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Docker下MySQL配置文件不生效的解決方法(超全面!)

    Docker下MySQL配置文件不生效的解決方法(超全面!)

    在Docker中運(yùn)行MySQL并遇到需要調(diào)整配置的情況時(shí),比如想要關(guān)閉ONLY_FULL_GROUP_BY的嚴(yán)格模式,我們可以通過(guò)以下步驟來(lái)實(shí)現(xiàn)sql_mode的修改:以下是解決此類(lèi)問(wèn)題的步驟和思路,需要的朋友可以參考下
    2024-09-09
  • 解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題

    解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 如何將Docker的構(gòu)建時(shí)間減少40%(推薦)

    如何將Docker的構(gòu)建時(shí)間減少40%(推薦)

    這篇文章主要介紹了如何將Docker的構(gòu)建時(shí)間減少40%,本文描述了我們?cè)趦?yōu)化CI管道后獲得的一些新見(jiàn)解,需要的朋友可以參考下
    2023-11-11
  • 在docker-compose.yml文件中配置容器的環(huán)境變量方式

    在docker-compose.yml文件中配置容器的環(huán)境變量方式

    本文介紹了在docker-compose.yml文件中設(shè)置和使用環(huán)境變量的方法,包括直接設(shè)置環(huán)境變量、從文件讀取環(huán)境變量以及使用多個(gè)環(huán)境文件進(jìn)行不同部署環(huán)境的配置
    2024-11-11
  • 使用Docker Swarm 搭建Wordpress的方法

    使用Docker Swarm 搭建Wordpress的方法

    這篇文章主要介紹了使用Docker Swarm 搭建Wordpress的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Docker 環(huán)境運(yùn)行 Mysql 和開(kāi)啟 Binlog 配置主從同步的設(shè)置方法

    Docker 環(huán)境運(yùn)行 Mysql 和開(kāi)啟 Binlog 配置主從同步的設(shè)置方法

    今天給大家分享Docker 環(huán)境運(yùn)行 Mysql 和開(kāi)啟 Binlog 配置主從同步的設(shè)置方法,利用docker模擬mysql設(shè)置的主從同步,通過(guò)兩種方式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • Docker 解決容器時(shí)間與主機(jī)時(shí)間不一致的問(wèn)題三種解決方案

    Docker 解決容器時(shí)間與主機(jī)時(shí)間不一致的問(wèn)題三種解決方案

    這篇文章主要介紹了Docker 解決容器時(shí)間與主機(jī)時(shí)間不一致的問(wèn)題的相關(guān)資料,這里提供了三種方法,供大家參考,需要的朋友可以參考下
    2016-12-12
  • Docker如何查看鏡像里的文件

    Docker如何查看鏡像里的文件

    文章介紹了如何在開(kāi)發(fā)過(guò)程中檢查Docker鏡像中的文件是否符合預(yù)期,步驟包括下載鏡像、創(chuàng)建并運(yùn)行臨時(shí)容器查看內(nèi)容,以及停止和刪除臨時(shí)容器
    2024-11-11
  • docker容器日志占滿(mǎn)硬盤(pán)空間的問(wèn)題解決

    docker容器日志占滿(mǎn)硬盤(pán)空間的問(wèn)題解決

    由于默認(rèn)情況下,docker使用json-file類(lèi)型的日志驅(qū)動(dòng),該日志驅(qū)動(dòng)默認(rèn)情況下,每個(gè)容器的日志會(huì)一直追加在文件名為 containerId-json.log文件中,因此在容器不重建的情況下,該日志文件會(huì)一直追加內(nèi)容,直到占滿(mǎn)整個(gè)服務(wù)器硬盤(pán)空間,本文就來(lái)介紹一下解決方法
    2023-09-09

最新評(píng)論

隆化县| 门头沟区| 图们市| 太谷县| 铜陵市| 扎囊县| 吉隆县| 蚌埠市| 甘德县| 峨山| 灵璧县| 奇台县| 平塘县| 绵竹市| 玉屏| 卫辉市| 舟山市| 西华县| 临潭县| 泸定县| 安岳县| 汉阴县| 军事| 孙吴县| 临漳县| 潢川县| 榆树市| 景东| 五华县| 博湖县| 巴林左旗| 桐城市| 稻城县| 南木林县| 和平县| 彩票| 泽州县| 宜都市| 伊宁市| 会宁县| 清涧县|