Jenkins部署GitHub上的前端項目
請先閱讀前兩篇
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
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)容。