好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > jenkins+gitlab+nginx部署前端應用實現

jenkins+gitlab+nginx部署前端應用實現

熱門標簽:福州企業電銷機器人排名 怎么找到沒有地圖標注的店 打400電話怎么辦理收費 河南防封號電銷機器人是什么 400電話辦理介紹信 宿城區電話機器人找哪家 10086外包用的什么外呼系統 上海申請高400開頭的電話 麗江真人語音電話外呼系統

相關依賴安裝

docker

由于國內安裝太慢,所以可以使用 https://docs.docker.com/desktop/ 進行加速下載。
具體的下載過程就不再闡述。
鏡像源:"http://hub-mirror.c.163.com"

docker安裝jenkins

# 拉取jenkins鏡像
docker pull jenkins/jenkins

# 在后臺運行一個 名為 jk,對外端口號為3080,鏈接數據卷為 ~/docker/jenkins 的服務

docker run -d --name jk -p 3080:8080 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins

命令執行完成后,即可啟動一個端口號為 3080 的http服務,打開瀏覽器,

  • 輸入 http://localhost:3080/ ,等待初始化完成后(可能會比較漫長),此時需要管理員密碼,cat ~/docker/jenkins/secrets/initialAdminPassword 即可獲取管理員密碼。
  • 再下一步就是安裝插件了,建議第一個選項,推薦的插件(這個安裝也會比較慢,耐心等待)
  • 創建第一個管理員賬戶

docker安裝gitlab

docker pull gitlab/gitlab-ce

docker run -d --name gitlab -p 443:443 -p 9001:80 -p 222:22 -v ~/docker/gl/config:/etc/gitlab:Z -v ~/docker/gl/logs:/var/logs/gitlab:Z -v ~/docker/gl/data:/var/opt/gitlab:Z gitlab/gitlab-ce

  • 初始化過程需要的時間可能會比較長,運行 docker logs -f gitlab可查看進度。
  • 輸入 http://localhost:9001,首次進入會輸入密碼,待完成后輸入用戶名密碼即可進入(默認的用戶名為root)
  • 設置 https 和 ssh 方式克隆項目的地址。
# 配置http協議所使用的訪問地址,不加端口號默認為80
external_url 'http://192.168.1.2:9001'

# 配置ssh協議所使用的訪問地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.1.2'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run時22端口映射的222端口

# nginx 監聽80端口,否則默認會使用 external_url 的端口號,導致端口映射不成功
nginx['listen_port'] = 80
:wq #保存配置文件并退出,重啟容器

如果 ssh 方式不成功,多半是因為 服務端的 key文件權限不正確。docker exec -it gitlab sh進入容器,查看 /etc/gitlab目錄下的 ssh_host_ecdsa_key、ssh_host_ed25519_key、ssh_host_rsa_key 3個文件的用戶名和群組是否為 git(chown 修改 所屬用戶,chgrp修改所屬群組),文件權限是否為600(chmod命令可修改).

docker 安裝 nginx

docker pull nginx
docker run -d --name nginx -p 80:80 -v ~/nginx/html:/usr/share/nginx/html nginx

小結

  • localhost:3080,訪問jenkins(應運行于用于構建的服務器)
  • localhost:9001,訪問gitlab(應運行于放置源碼的服務器)
  • localhost, 訪問nginx(應運行于服務器)

配置

1. 安裝 gitlab 相關插件

首頁->系統管理->插件管理

然后 切換到 可選插件,搜索gitlab,選中 gitlab plugin(我已經安裝了,所以此處沒有展示),然后選中左下角的按鈕,等待安裝完成

2. 首頁->系統管理->系統配置

Credentials 那里,添加的時候必須是 GitLabAPI token,

GitLabAPI token 的獲取方式如下圖,生成的token刷新后就會隱藏,從而保證安全性。

配置填寫完成以后,最好點擊一下 test connection 按鈕,確保配置填寫正確。

3. 新建一個 job

4. 輸入任務名稱,并選擇自由風格

5. 配置相關構建選項

1. General 配置
選中之前系統配置里面填寫的選項即可,如果不選的話,構建的狀態將無法回傳到 gitlab

2. 源碼管理

URL只能 http 格式的,所以下方的 Credentials 就需要使用username with password,選錯的話將無法拉取代碼。

下方的配置,表示只在 master 和 以 ci 開頭的分支進行構建。具體的規則可點擊右方的問號自行了解。

3. 構建觸發器
勾選 Build when a change is pushed to GitLab.,右側有適用于 gitlab 的webhook URL, 下方則是一些觸發構建的時機選項(需要和 gitlab 那邊的配置互相配合)。

jenkins 插件提供的 webhooj URL 是無法直接使用的,因為 jenkins 是需要登錄的,對外提供的API也需要登錄,否則就會返回 HTTP 401, 好在這種登錄用HTTP基本認證就可以搞定。
點擊 用戶名 -> 設置 -> API Token -> 添加新Token -> 輸入名稱 -> 生成,然后復制該 Token,與之前的 webhook URL拼接即可。拼接規則為 <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>。最終即可得到 http://ma1:11d4aca0aa206fc89d703879749fa7@192.168.1.2:3080/project/gl

此時可以先保存一下。然后去 gitlab 進行配置。

4. gitlab 配置 webhook URL
gitlab默認是不允許使用 本機URL的,所以要么使用公網域名,要么修改gitlab的隱私設置(如下圖所示)

隨后打開需要部署的項目 -> settings -> webhooks,填入上一步拼接URL,選擇對應的事件,點擊 Add即可。添加成功以后,可以點擊 Test 測試一下 hooks 是否暢通()。

5. 構建環境
前端構建免不了要使用 node,所以這里一定要勾選 Provide Node & npm bin/ folder to PATH(如果沒有的話,就去插件中心安裝)

6. 構建

去插件中心安裝一個名為 Publish Over SSH 的插件,主要是用于將生成的文件發送到遠程服務器。

需要在 -> 系統管理 -> 系統配置中,進行該插件的配置。

2.構建tab,增加構建步驟,選擇執行shell
gl替換為對應的項目名即可

# 刪除之前的文件
rm -rf /tmp/html.tar.gz

# 運行測試
npm run test
# npm構建,打包腳本
npm run bd

# 切換到該工程目錄
cd /var/jenkins_home/workspace/gl
# 將目標文件夾打包為 壓縮文件
tar -zcvf /tmp/html.tar.gz --exclude .git -C ./dist .
# 一定要把壓縮文件放到工程目錄下,所以 publish over ssh無法訪問
mv /tmp/html.tar.gz ./

構建tab,增加構建步驟,選擇Send files or execute commonads over SSH

# 先刪除/tmp/html,再新建。防止報錯
rm -rf /tmp/html
mkdir /tmp/html

# 將壓縮文件解壓到 /tmp/html,然后刪除壓縮文件
tar -xvf ~/html/html.tar.gz -C /tmp/html
rm -rf  ~/html/html.tar.gz

# 將解壓出來的文件,復制到 ~/nginx/html(之前docker nginx映射的本地路徑)
cd /tmp/html
cp -R /tmp/html/* ~/nginx/html

7. 構建后步驟
點擊 增加構建后操作步驟,選擇Publish build status to Gitlab,這樣jenkins構建完成后,在 gitlab 的 CI/CD 也能看到此次構建的狀態。

6. 推送代碼,觸發構建
推送代碼后,如果順利的話,就會在這里看到構建歷史,否則檢查配置即可。

7. 瀏覽網站

推送代碼后,只是靜態文件部署,所以nginx不需要重啟即可看到新內容。

總結

  • 推送代碼時,gitlab 通過 webhook URL 通知 jenkins
  • jenkins 收到 POST請求后,觸發構建,包括測試打包等,完成后發送文件到遠程服務器,并執行相應命令,如解壓縮文件、復制到nginx相關目錄等。如果是 nodejs 應用,還需要 執行 node腳本
  • 遠程服務器需提前安裝好 docker 和 nginx 容器,并運行 nginx 服務于后臺。
  • 如果需要 nodejs + nginx,可以使用 docker-compose簡化命令運行,然后在 publish over ssh的exec command加入對應命令即可。

到此這篇關于jenkins+gitlab+nginx部署前端應用實現的文章就介紹到這了,更多相關jenkins gitlab nginx 部署 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:連云港 遵義 雞西 朝陽 隴南 荊門 運城 面試通知

巨人網絡通訊聲明:本文標題《jenkins+gitlab+nginx部署前端應用實現》,本文關鍵詞  jenkins+gitlab+nginx,部署,前端,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《jenkins+gitlab+nginx部署前端應用實現》相關的同類信息!
  • 本頁收集關于jenkins+gitlab+nginx部署前端應用實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 被夫上司持续侵犯7天| 久9这里精品免费视频| 欧美香蕉网| 天天操女人| 亚洲中文字幕无码爆乳aV男男| 最近免费视频观看在线播放| 九九精品久久久久久噜噜| 办公室桌子开车| 国产乳摇福利视频在线观看| 日本无遮挡拍拍拍凤凰| 日本美女黄视频| 男主出轨小三各种肉H| 来触摸吧| 五百剧场| 爆乳生物老师掀开裙子我用力c她 老师趴讲台把腿张开让学生背单词 | 非洲女人特黄婬片A大片| do到饭糊厨房未增删动| 东北小伙gayxxxxx| 少妇┅┅快┅┅用力同学| 秋霞日韩一区二区三区在线观看| 被三个男s调教| 久久久久久福利| 国产精品久久久久精品日日软件 | 9久热在线精品996热视频怎么用| 娇妻被三个黑人玩成了三明治| 欧美无遮挡| 欧美三级a做爰在线观看| 99久久亚洲精品视香蕉蕉v| 午夜影院性| 玄学大佬她美又飒| 99综合视频| 两个奶头被吃高潮受不了| 埃及艳后h版成c人版在线| 国产精品私密保养| 欧美最猛黑人xxxxwww| 韩国19禁视频一区二区| 中国精品女厕toilet22| 欧美一级黄色录像| 日本列车撞人致2人死亡| 制服 丝袜 综合 日韩 欧美| 扒开美女内裤狂揉下部app|