導航:首頁 > 配伺服器 > 如何在伺服器部署github

如何在伺服器部署github

發布時間:2023-08-14 21:44:43

『壹』 搭建GitLab伺服器

GitLab是GitHub的免費私有庫替代方案,並且安裝與配置都很方便。

GitLab要求最少4GB內存,支持小團隊使用沒問題,實測2GB內存的VPS基本沒法用,開swapfile也不行,動不動就60秒超時。因此4GB內存是必須的。

關於這一點,內存大戶主要是Unicorn,基於ruby的http伺服器。Unicorn會在啟動後預先佔用大部分內存,內存會隨著使用逐漸增長,並且不會釋放。根據GitLab和Unicorn的官方文檔,這不是它們的鍋,那麼這個鍋可能是ruby和rails了。解決方法是unicorn-work-kill,會根據請求次數和內存佔用自動重啟Unicorn。Omnibus版的GitLab是默認開啟的。

GitLab分為社區版和企業版,在未付費的情況下,兩者的功能是一樣的。並且社區版整合了CI/CD,因此可以滿足絕大部分的開發需求。

安裝包主要包括Omnibus整合包,Docker、AWS等的雲鏡像,以及一些第三方維護的版本。其中Omnibus直接整合了所有服務端組件,適合自用和練手。

安裝以Omnibus整合包為例,操作系統為Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 這幾個組件:

不過伺服器系統一般自帶,所以是可選的。

郵件服務,用於GitLab發送找回密碼的郵件:

不過如果伺服器沒有域名的話,大部分郵箱會拒收郵件,而管理員帳號可以直接重置其他賬號的密碼,所以是可選的。

官方提供的腳本:

這個腳本會自動添加源到apt 的source list,以及安全key。另外,如果自己伺服器在國內,腳本會自動添加清華的鏡像,速度還行。

先更新apt緩存:

推薦使用 apt 而不是 apt-get ,前者大多數情況下更簡單一點。

然後是安裝:

其中 EXTERNAL_URL ,改成自己的域名。沒有域名的話,可以直接設置成IP的形式: http://1.2.3.4 ,這個推測跟nginx服務以及GitLab中的項目地址有關,所以最好正確設置。當然也可以之後在配置文件里更改。

安裝完成後,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方還有一個關於 unicorn 的優化建議:

默認值是2,如果伺服器只用於GitLab的話,官方建議是CPU核心數加一,可以提高伺服器的響應速度。不過如果內存只有4G,或者伺服器同時承載其他服務,就不要改了,以免內存不足。另外,這個參數最小值是2,設為1,伺服器可能會卡死。

配置完成後,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果沒有報錯的話,GitLab就配置完畢並且正常運行了。接下來可以打開瀏覽器開始訪問了。

『貳』 一般公司或者團隊是怎麼進行代碼開發並且部署到伺服器上的

廢話不多說,直接來乾的。這里介紹一套成熟的方案。

gitlab(代碼管理)+jenkins(持續集成)+k8s(服務管理)

其中涉及到的技術細節:dockerindockermakefile

gitlab使用介紹

gitlab是一款類似github的開源代碼管理軟體,可在公司內網,直接搭建一套私有代碼倉庫,適合團隊多人開發,具有完善的分支管理、角色管理、issue、里程碑等。是非常優秀的一款軟體。

jeknis使用介紹

這是一款開源持續集成軟體,說人話就是使用他可以自動化部署服務。其具有gitlab相關的插件,安裝後可直接對接gitlab,當gitlab發生push或者merge代碼事件,會通知jeknis去完成最新推送的代碼的鏡像構建和部署。

推薦上面說的兩款技術和jeknis混合使用。

1.dockerindocker技術。顧名思義就是docker裡面運行docker,簡單點直接用dockerfile在jeknis鏡像的基礎上安裝docker客戶端或者k8s客戶端。這樣我們孫搭薯在容器中就可以直接調用宿主機的docker命令或者k8s命令。這對我們使用jenkins執行部署腳本,通知k8s或者docker部署服務,非常方便。

2.makefile之所以介紹這款他,是因為其具有一個絕佳的功能,可以檢測文件內容是否發生變化,這樣對於微服務架構,其配合jenkins,無需指定什麼,就可以部署上發生文件變化的微服務。而不會影響到其他服枝碧務。

k8s使用介紹

這款當紅炸子雞?,相信大家耳聞已久。其實現了對docker的管理和編排。配合上共享存儲和其服務自動重則者啟機制,可以讓我們的服務無當機。

對於docker內部服務的暴露推薦ingress+service.

docker鏡像管理推薦harbor。

以上完整的自動化開發部署環境,有興趣的可以自行學習相關內容,進行搭建測試。

閱讀全文

與如何在伺服器部署github相關的資料

熱點內容
編程15個好習慣 瀏覽:674
電腦u盤文件夾顯示屏幕保護程序 瀏覽:797
我的世界伺服器版本怎麼下載 瀏覽:600
c代碼加密工具 瀏覽:355
使用泛型演算法的錯誤 瀏覽:737
單片機焊接要焊接多少個引腳 瀏覽:669
android圖片瀏覽器代碼 瀏覽:705
中國電信智慧維app如何使用 瀏覽:701
列印文件夾內文件如何統一設置 瀏覽:553
單片機連接8個按鍵 瀏覽:656
阿里雲伺服器網頁怎麼找到 瀏覽:958
數控車床如何進行自動編程 瀏覽:11
app網課視頻怎麼拷貝到電腦上 瀏覽:710
安卓國服光遇小王子季節什麼時候結束 瀏覽:537
恢復的音樂在哪個文件夾 瀏覽:595
qq傳輸文件夾壓縮包 瀏覽:911
sha1加密演算法java 瀏覽:233
單片機ds1302程序 瀏覽:738
杜比壓縮開還是關怎樣判斷 瀏覽:366
對象類型轉換java編譯和運行 瀏覽:285