搭建屬于自己的 Git 倉庫:GitLab

搭建屬于自己的 Git 倉庫:使用 GitLab

文章目錄

    • 搭建屬于自己的 Git 倉庫:使用 GitLab
    • 什么是 GitLab?
    • 準備工作
    • 安裝 Docker
    • 使用Docker Compose 快速構建GitLab
      • 1、從docker compose快速搭建GitLab
      • 2、部署到服務器并訪問
      • 3、瀏覽器訪問

在現代軟件開發中,版本控制系統(VCS)是不可或缺的工具,它們幫助開發團隊管理代碼庫,跟蹤更改,并協作開發項目。Git 是一種流行的分布式版本控制系統,而 GitLab 是一個開源的 Git 倉庫管理工具,提供了強大的功能,包括代碼評審、CI/CD、問題跟蹤等。本文將介紹如何在自己的服務器上搭建一個 GitLab 實例,并創建屬于自己的 Git 倉庫。

什么是 GitLab?

GitLab 是一個基于 Git 的開源平臺,提供了代碼倉庫管理、CI/CD(持續集成和持續交付)、代碼審查、問題跟蹤和項目管理等功能。GitLab 有社區版(GitLab CE)和企業版(GitLab EE),社區版是免費的,企業版提供了更多高級功能。

準備工作

在開始之前,確保你有以下準備工作:

一臺運行 Linux(如 Ubuntu 或 CentOS)的服務器。
具有 sudo 權限的用戶。
已安裝 Docker 和 Docker Compose(可選,用于簡化 GitLab 安裝)。

安裝 Docker

如果你的服務器尚未安裝 Docker,可以參照文章:在CentOS中安裝Docker
也可以使用下面命令快速安裝:

# 更新包索引
sudo apt update# 安裝必要的軟件包
sudo apt install apt-transport-https ca-certificates curl software-properties-common# 添加 Docker 官方 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 添加 Docker APT 軟件源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"# 更新包索引
sudo apt update# 安裝 Docker
sudo apt install docker-ce# 啟動并啟用 Docker 服務
sudo systemctl start docker
sudo systemctl enable docker

使用Docker Compose 快速構建GitLab

1、從docker compose快速搭建GitLab

使用docker compose在docker環境下快速部署:

搭建docker compose環境參考文章:docker compose快速安裝

學習docker compose參考文章(本篇博客不需要,只是推薦學習)DockerCompose(初識、安裝、部署) Docker Compose 命令說明文檔

docker-compose.yaml文件鏈接:https://github.com/sameersbn/docker-gitlab/blob/master/docker-compose.yml

image-20240524183353761

可以點擊下載,也可以新建docker-compose.yaml文件,將內容復制粘貼。

也可以直接復制(但是建議從官網下載,可能版本會更新之類的):

version: '2.3'services:redis:restart: alwaysimage: redis:6.2command:- --loglevel warningvolumes:- redis-data:/data:Zpostgresql:restart: alwaysimage: sameersbn/postgresql:14-20230628volumes:- postgresql-data:/var/lib/postgresql:Zenvironment:- DB_USER=gitlab- DB_PASS=password- DB_NAME=gitlabhq_production- DB_EXTENSION=pg_trgm,btree_gistgitlab:restart: alwaysimage: sameersbn/gitlab:17.0.0depends_on:- redis- postgresqlports:- "10080:80"- "10022:22"volumes:- gitlab-data:/home/git/data:Zhealthcheck:test: ["CMD", "/usr/local/sbin/healthcheck"]interval: 5mtimeout: 10sretries: 3start_period: 5menvironment:- DEBUG=false- DB_ADAPTER=postgresql- DB_HOST=postgresql- DB_PORT=5432- DB_USER=gitlab- DB_PASS=password- DB_NAME=gitlabhq_production- REDIS_HOST=redis- REDIS_PORT=6379- TZ=Asia/Kolkata- GITLAB_TIMEZONE=Kolkata- GITLAB_HTTPS=false- SSL_SELF_SIGNED=false- GITLAB_HOST=- GITLAB_PORT=10080- GITLAB_SSH_PORT=10022- GITLAB_RELATIVE_URL_ROOT=- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_ROOT_PASSWORD=- GITLAB_ROOT_EMAIL=- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true- GITLAB_NOTIFY_PUSHER=false- GITLAB_EMAIL=notifications@example.com- GITLAB_EMAIL_REPLY_TO=noreply@example.com- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com- GITLAB_BACKUP_SCHEDULE=daily- GITLAB_BACKUP_TIME=01:00- SMTP_ENABLED=false- SMTP_DOMAIN=www.example.com- SMTP_HOST=smtp.gmail.com- SMTP_PORT=587- SMTP_USER=mailer@example.com- SMTP_PASS=password- SMTP_STARTTLS=true- SMTP_AUTHENTICATION=login- IMAP_ENABLED=false- IMAP_HOST=imap.gmail.com- IMAP_PORT=993- IMAP_USER=mailer@example.com- IMAP_PASS=password- IMAP_SSL=true- IMAP_STARTTLS=false- OAUTH_ENABLED=false- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=- OAUTH_ALLOW_SSO=- OAUTH_BLOCK_AUTO_CREATED_USERS=true- OAUTH_AUTO_LINK_LDAP_USER=false- OAUTH_AUTO_LINK_SAML_USER=false- OAUTH_EXTERNAL_PROVIDERS=- OAUTH_CAS3_LABEL=cas3- OAUTH_CAS3_SERVER=- OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false- OAUTH_CAS3_LOGIN_URL=/cas/login- OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate- OAUTH_CAS3_LOGOUT_URL=/cas/logout- OAUTH_GOOGLE_API_KEY=- OAUTH_GOOGLE_APP_SECRET=- OAUTH_GOOGLE_RESTRICT_DOMAIN=- OAUTH_FACEBOOK_API_KEY=- OAUTH_FACEBOOK_APP_SECRET=- OAUTH_TWITTER_API_KEY=- OAUTH_TWITTER_APP_SECRET=- OAUTH_GITHUB_API_KEY=- OAUTH_GITHUB_APP_SECRET=- OAUTH_GITHUB_URL=- OAUTH_GITHUB_VERIFY_SSL=- OAUTH_GITLAB_API_KEY=- OAUTH_GITLAB_APP_SECRET=- OAUTH_BITBUCKET_API_KEY=- OAUTH_BITBUCKET_APP_SECRET=- OAUTH_BITBUCKET_URL=- OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=- OAUTH_SAML_IDP_CERT_FINGERPRINT=- OAUTH_SAML_IDP_SSO_TARGET_URL=- OAUTH_SAML_ISSUER=- OAUTH_SAML_LABEL="Our SAML Provider"- OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient- OAUTH_SAML_GROUPS_ATTRIBUTE=- OAUTH_SAML_EXTERNAL_GROUPS=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=- OAUTH_CROWD_SERVER_URL=- OAUTH_CROWD_APP_NAME=- OAUTH_CROWD_APP_PASSWORD=- OAUTH_AUTH0_CLIENT_ID=- OAUTH_AUTH0_CLIENT_SECRET=- OAUTH_AUTH0_DOMAIN=- OAUTH_AUTH0_SCOPE=- OAUTH_AZURE_API_KEY=- OAUTH_AZURE_API_SECRET=- OAUTH_AZURE_TENANT_ID=volumes:redis-data:postgresql-data:gitlab-data:

打開編輯文件內容:

image-20240524184143182

2、部署到服務器并訪問

  1. 新建文件夾:

    mkdir /home/gitlab
    
  2. 上傳文件docker-compose.yaml,也可以新建文件,將內容粘貼過去。

    image-20240524184829197

  3. 啟動docker compose

    docker-compose up -d
    
    • -d參數:后臺啟動。
  4. 使用docker ps命令可以看見新增的三個docker容器:

    image-20240524190730297

3、瀏覽器訪問

瀏覽器訪問:http://192.168.200.128:80即可進入GitLab的頁面。

按理來說我用GitLab來整合Jenkins,但是服務器資源受限,沒有配置成功,我換成了github來演示。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16174.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16174.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據結構】------C語言實現二叉樹

作者主頁:作者主頁 數據結構專欄:數據結構 創作時間 :2024年5月20日 一、二叉樹的定義 二叉樹(Binary Tree) 是由n個結點構成的有限集(n≥0),n0時為空樹,n>0時為非空樹。 對于非空樹: 有且僅有一個根…

接口自動化核心模塊Requests詳解(一)

一、Requests簡介 Python的Requests庫是一個功能強大且簡潔的庫,提供了簡單易用的接口來處理HTTP請求。 二、Requests的使用步驟 2.1 安裝Requests庫 在終端命令行,使用pip命令進行安裝, pip install requests 2.2 Requests庫常用方法…

騰訊Java社招面試題真題,最新面試題

Java中synchronized和ReentrantLock有什么區別? 1、鎖的實現方式不同: synchronized是JVM層面的鎖,主要依賴于監視器對象(monitor)實現。ReentrantLock是JDK層面的鎖,通過Java代碼實現,提供了更…

語雀——云知識庫/筆記

對于日常進行學習/創作或是記錄學習、工作內容與心得的群體來說,能夠及時同步的云筆記應用有著廣泛的應用場景。近期,我也探索了許多款不同的軟件應用,今天來分享一款很有特點的應用——語雀。 語雀,為每一個人提供優秀的文檔和知…

1.6 什么是程序-編譯與調試

目錄 1 程序的作用 2 新建項目及編譯運行 2.1 新建項目 2.2 HelloWorld 程序說明 2.3 printf 打印輸出 2.4 注釋 3 程序的編譯過程及項目位置 4 斷點及調試窗口設置 5 學習C語言后的境界 1 程序的作用 如下圖所示,我們編寫了一個可以做加法的程序&#xf…

vue3 vite項目配置了proxy代理情況下查看真實的接口調用地址

vite配置了proxy代理情況下如何查看真實的接口調用地址? 使用vite進行代理 在vite.config.ts配置了代理 在瀏覽器查看請求頭和響應頭發現只有代理前的url,沒有顯示代理后的路徑 然后發現一個bypass函數,但是此函數只能修改res響應頭的數據&#xff0…

C語言基礎-鏈表和數組的區別

在C語言中,鏈表(Linked List)和數組(Array)是兩種常用的數據結構,它們在數據存儲和訪問上各有其獨特的作用和優勢。以下是對這兩種數據結構的作用以及它們之間的不同點的詳細說明: 數組&#x…

Dockerfile文件詳細介紹

前言 Dockerfile是一個文本文件,包含了用于構建Docker鏡像的所有命令和說明。它定義了容器的運行環境、依賴以及啟動方式,是創建Docker鏡像的核心部分。 由于制作鏡像的過程中,需要逐層處理和打包,比較復雜,所以Docke…

實戰復盤:內網環境滲透ms-SQL數據庫

滲透環境:如下圖所示,web服務器、ms-SQL服務器、PC客戶端在同一個網絡中,彼此之間,沒有路由器或防火墻的隔離,這是一種危險的網絡結構,入侵ms-SQL服務器,非常容易。(實戰中&#xff…

整理了10個靠譜且熱門的賺錢軟件,適合普通人長期做的賺錢副業

作為一名普通的上班族,我們每天都在辛勤工作,但工資的增長速度卻如同蝸牛般緩慢。不過,別擔心,信息時代總是帶給我們無盡的驚喜!今天,我將為大家推薦一些賺錢的寶藏軟件,讓你在閑暇之余輕松實現…

Java-Zookeeper

zookeeper是什么 一個分布式、開源的分布式應用程序協調服務,具有配置維護、域名服務、分布式同步、組服務等 zookeeper有哪些功能 功能簡介集群管理監控節點狀態、運行請求等主節點選舉主節點掛掉之后會執行新主選舉分布式鎖zookeeper提供兩種鎖:獨占…

IEDA常用快捷鍵(后續更新ing)

1. 快速生成語句 1.快速生成main()方法 psvm或者main回車 2.快速生成輸出語句 sout,回車 3.快速生成for循環 fori或者itar,回車 2.快捷鍵 含義操作查找文本CtrlF替換文本CtrlR單行注釋Ctrl/多行注釋CtrlShift/格式化CtrlAltL復制當前內容至下一行CtrlD補全代碼Alt/快速生成…

RAGs:自動化評估 RAG 示例代碼

文章目錄 原理忠實度(Faithfulness)答案相關性(Answer Relevance)上下文相關性(Context Relevance)上下文召回率(Context Recall)答案正確性(Answer Correctness&#xf…

C# 機構仿真實例

1、實現連桿帶動滑塊運動 一個連桿旋轉帶動另一個連桿,另一個連桿拖動滑塊,點擊“開始”按鈕開始運動,再點擊按鈕,則停止運動。 2、實現程序 #region 機構仿真Image image null;Timer timer new Timer();int width 0;int heig…

一千題,No.0027(Phone Desktop)

描述 Little Rosie has a phone with a desktop (or launcher, as it is also called). The desktop can consist of several screens. Each screen is represented as a grid of size 53, i.e., five rows and three columns. There are x applications with an icon size o…

【網絡安全】社會工程學攻擊與防范

一、社會工程學概述 1、社會工程學的定義 通過利用人們的心理弱點、本能反應、好奇心、信任、貪婪等一些心理陷阱進行的諸如欺騙、傷害、信息盜取、利益謀取等對社會及人類帶來危害的行為或方法。 當網絡惡意攻擊者無法通過純粹的計算機技術達到目的時,高超的情商…

9.Redis之list類型

list相當于鏈表、數據表 1.list類型基本介紹 列表中的元素是有序的"有序"的含義,要根據上下文區分~~有的時候,談到有序,指的是"升序","降序”有的時候,談到的有序,指的是, 順序很關鍵~~如果把元素位置顛倒,順序調換.此時得到的新的 List 和之前的 Li…

js簡單綜合案例之簡易ATM取款機、渲染表格案例、封裝時間函數

這里寫目錄標題 簡易ATM取款機要求代碼實現 渲染表格案例要求代碼實現 封裝時間函數要求代碼實現 簡易ATM取款機 要求 1.彈出彈窗,讓用戶輸入數字選擇操作 2.初始值金額為100,計算每次操作后的剩余金額變化 3.一直彈出彈窗直到用戶輸入4,跳…

OpenCV SIFT特征描述子(GPU版本)

文章目錄 一、簡介二、測試過程三、實現效果參考資料一、簡介 這里主要測試一下SIFT圖像描述子的GPU版本。SIFT圖像描述子,全稱Scale-Invariant Feature Transform(尺度不變特征變換),是計算機視覺和圖像處理領域中一種非常重要的局部特征描述子。它主要用于圖像的特征點檢…

新聞稿海外媒體投稿,除了美聯社發稿(AP)和彭博社宣發(Bloomberg),還有哪些優質的國外媒體平臺可以選擇

發布高質量的新聞稿到海外媒體,除了美聯社發稿(AP)和彭博社發稿(Bloomberg),還有許多其他優質的媒體平臺可以選擇。以下是一些受歡迎和高效的海外媒體發布平臺: 路透社 (Reuters) 路透社是全球最…