Jenkins部署GitHub上的前端項目

      網(wǎng)友投稿 873 2025-03-31

      請先閱讀前兩篇

      Docker安裝Jenkins并配置GitHub

      Jenkins+GitHub報錯hudson.plugins.git.GitException: Failed to fetch from GitHub 443

      前提-Jenkins配置node環(huán)境

      1.配置node插件

      系統(tǒng)配置-插件管理-可選插件,搜索nodejs,直接安裝

      配置node版本

      General

      可以直接全部選擇不填,但是建議勾選丟棄舊的構(gòu)建

      這里丟棄舊的構(gòu)建是指 丟棄之前的構(gòu)建記錄。

      如下圖,這是Jenkins的構(gòu)建記錄,可以選擇保留的天數(shù)以及保留的條數(shù)。

      源碼管理

      這里為了解決GitHub使用https,經(jīng)常報443的問題,使用ssh方式,進行代碼的管理。

      點擊 添加按鈕,添加私鑰,具體請查看另一篇文章。

      如果你不希望使用ssh,那么請直接選擇

      用戶名密碼憑證

      構(gòu)建觸發(fā)器

      直接選擇GitHub hook trigger for GITScm polling

      構(gòu)建環(huán)境

      構(gòu)建

      選擇執(zhí)行shell,這里請安裝cnpm,構(gòu)建速度快,且容易報錯。

      echo $PATH

      node -v

      npm -v

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

      Jenkins部署GitHub上的前端項目

      cnpm install

      npm run build

      如果部署到服務器的話,建議打包

      cd dist

      tar -zcvf dist.tar.gz *

      構(gòu)建后步驟,發(fā)布到遠程服務器

      這里我們時使用docker安裝的Jenkins, 如果你部署的服務器就是jenkins服務器,那可以直接通過宿主機-容器共享卷的方式部署。因為比較簡單,這里簡單的說一下:

      找到j(luò)enkins構(gòu)建后的目錄

      做一個共享卷的操作,是的構(gòu)建結(jié)束之后,宿主機直接擁有打包后的文件,所以最好的方式可以把宿主機的目錄設(shè)置為nginx的web目錄

      但是,會存在發(fā)布到遠程服務器的情況,下面著重介紹一下:

      1、安裝Publish Over SSH插件

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

      2、配置SSH

      系統(tǒng)管理 -> 系統(tǒng)設(shè)置 -> 下拉,找到Publish over SSH

      下面有一個test configuration 按鈕,點擊測試,sussess表示連接成功。

      構(gòu)建后步驟

      cd /home/share/blog/www

      tar -zxvf dist.tar.gz

      rm -f dist.tar.gz

      遠程服務器配置的nginx進行訪問

      1、下載鏡像

      docker pull nginx

      2、啟動nginx容器

      docker run -d -p 9999:80 --name nginx nginx

      這里將容器的80端口映射到9999端口,訪問ip:9999 即可

      -d 后臺運行

      3、找到容器中nginx的位置

      3、在宿主機和nginx容器之間建立數(shù)據(jù)卷

      nginx.conf 配置文件

      logs 日志文件

      www 源代碼部署文件

      !!! 如果直接執(zhí)行下面的命令的話,可能會報錯,Are you trying to mount a directory onto a file or vice-versa,因為不能掛載文件,只能掛載文件夾,所以先在容器中復制一份配置文件。

      第一步已經(jīng)啟動了一個nginx,所以可以直接拷貝

      mkdir -p /home/share/blog/conf /home/share/blog/logs

      拷貝配置文件到工作目錄

      docker cp -a nginx:/etc/nginx/nginx.conf /home/share/blog/conf

      宿主機(自己決定)

      容器(容器啟動后自動生成的)

      /home/share/blog/www /usr/share/nginx/html

      /home/share/blog/conf/nginx.conf

      /etc/nginx/nginx.conf

      /home/share/blog/logs /var/log/nginx

      首先停止之前的容器并刪除

      docker stop nginx

      docker rm nginx

      重新啟動容器并掛載工作目錄

      docker run -d --restart always -p 9999:80 -v /home/share/blog/www:/usr/share/nginx/html -v /home/share/blog/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/share/blog/logs:/var/log/nginx --name nginx nginx

      // --restart always

      // 表示docker重啟時會自動重啟該容器

      訪問-成功

      Docker Git GitHub Jenkins

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表格復制到WORD中怎樣保留完整格式(excel表格復制word后怎么保持原格式)
      下一篇:wps空白頁刪不掉是為什么(為什么wps有空白頁刪不了)
      相關(guān)文章
      好看的亚洲黄色经典| 亚洲一区二区三区国产精品| 亚洲精品乱码久久久久久自慰| 伊人久久亚洲综合影院| 亚洲成在人线aⅴ免费毛片| 亚洲人成www在线播放| 亚洲人成网站在线观看播放青青| 亚洲美女色在线欧洲美女| 久久国产亚洲精品无码| 久久久久久亚洲AV无码专区| 亚洲今日精彩视频| 亚洲精品在线观看视频| 亚洲天天在线日亚洲洲精| 亚洲乱亚洲乱淫久久| 亚洲视频在线观看免费| 亚洲国产精品一区二区久久| 亚洲精品无码不卡| 亚洲日韩乱码久久久久久| 亚洲性无码av在线| 亚洲一级特黄特黄的大片 | 国产亚洲sss在线播放| 亚洲AV一二三区成人影片| 亚洲天堂2016| 亚洲色大成网站www永久网站| 亚洲日韩精品国产3区| 亚洲国产精品99久久久久久| 亚洲AV无码国产精品永久一区| 国产精品无码亚洲一区二区三区| 人人狠狠综合久久亚洲| 亚洲va中文字幕无码| 久久精品国产精品亚洲艾草网美妙| 国产亚洲午夜高清国产拍精品| 亚洲午夜未满十八勿入网站2| 国产成人精品日本亚洲| 午夜亚洲国产理论秋霞| 亚洲精品福利网泷泽萝拉| 亚洲毛片基地4455ww| 亚洲国产成人手机在线观看| 亚洲 综合 国产 欧洲 丝袜| 国产精品亚洲不卡一区二区三区| 亚洲国产美女精品久久久久∴|