如何使用docker compose安裝gitlab
GitLab簡介
GitLab是一個基于Git的開源項目,旨在幫助團隊更高效地合作和開發(fā)軟件。它使用Ruby on Rails框架構(gòu)建,提供了一個自托管的Git倉庫管理工具,支持版本控制、代碼審查、持續(xù)集成和持續(xù)部署等功能。
主要功能包括:
- 版本控制:用戶可以創(chuàng)建分支、合并代碼,并處理沖突,確保代碼的歷史和變更管理得當(dāng)。
- 代碼審查:團隊成員可以通過拉取請求(Pull Requests)對提交的代碼進行評論和討論,確保代碼質(zhì)量。
- 持續(xù)集成/持續(xù)部署(CI/CD):GitLab內(nèi)置了CI/CD功能,支持自動化的構(gòu)建、測試和部署流程,提高開發(fā)效率。
- 項目管理:通過Issue跟蹤、看板、里程碑等功能,幫助團隊管理項目進度和任務(wù)。
GitLab還提供了權(quán)限管理和審計日志,確保代碼的安全性和合規(guī)性,適用于從小型開源項目到大型企業(yè)級應(yīng)用的各種規(guī)模團隊。
GitLab是實現(xiàn) DevOPS
自動化開發(fā)運維流水線的經(jīng)典工具。
設(shè)置GITLAB_HOME路徑
先設(shè)置一個 GITLAB_HOME
環(huán)境變量,為gitlab的工作目錄。有2個方式:
- 寫入環(huán)境變量配置文件(推薦)。在
docker-compose.yml
文件的同級目錄創(chuàng)建.env
文件。寫入GITLAB_HOME=/srv/gitlab
- 添加到shell的啟動配置文件中。
echo "GITLAB_HOME=/srv/gitlab" >> ~/.bash_profile
通過第2種方式添加配置后,使用 source ~/.bash_profile
命令,使配置生效
創(chuàng)建docker掛載目錄
進入上一步驟設(shè)置的 $GITLAB_HOME
目錄中,新建 data
, logs
, config
個文件夾。
如下所示:
宿主機目錄
容器內(nèi)部目錄
說明
$GITLAB_HOME/data
/var/opt/gitlab
Stores application data.
$GITLAB_HOME/logs
/var/log/gitlab
Stores logs.
$GITLAB_HOME/config
/etc/gitlab
Stores the GitLab configuration files.
獲取可用的GitLab版本
# 鏡像名格式: gitlab/gitlab-ce:<version>-ce.0 # 指定固定版本鏡像 gitlab/gitlab-ce:17.6.2-ce.0 # 使用最新版本鏡像 gitlab/gitlab-ce:latest
編寫docker-compose.yml文件
docker-compose.yml
:
version: '3.6' services: gitlab: image: gitlab/gitlab-ce:17.6.2-ce.0 container_name: gitlab restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com:8929' gitlab_rails['gitlab_shell_ssh_port'] = 2424 ports: - '8929:8929' - '443:443' - '2424:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'
通過 GITLAB_OMNIBUS_CONFIG
環(huán)境變量,配置 external_url
參數(shù),設(shè)定倉庫的HTTP地址。
ports
的端口映射,以 GITLAB_OMNIBUS_CONFIG
的相關(guān)配置項為準。
啟動docker
docker compose up -d
容器首次啟動,需要數(shù)分鐘的時間,請耐心等待。
啟動成功后,容器狀態(tài)由 (health: starting)
變?yōu)?(healthy)
。如下所示:
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS gitlab gitlab/gitlab-ce:17.6.2-ce.0 "/assets/wrapper" gitlab 2 hours ago Up 12 seconds (health: starting) 0.0.0.0:443->443/tcp, :::443->443/tcp, 80/tcp, 0.0.0.0:8929->8929/tcp, :::8929->8929/tcp, 0.0.0.0:2424->22/tcp, [::]:2424->22/tcp NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS gitlab gitlab/gitlab-ce:17.6.2-ce.0 "/assets/wrapper" gitlab 3 hours ago Up 51 minutes (healthy) 0.0.0.0:443->443/tcp, :::443->443/tcp, 80/tcp, 0.0.0.0:8929->8929/tcp, :::8929->8929/tcp, 0.0.0.0:2424->22/tcp, [::]:2424->22/tcp
查看容器運行日志:
sudo docker logs -f gitlab
通過前面配置的 external_url
,訪問 GitLab 項目地址,登錄root賬號。
- 用戶名為:
root
- 用戶密碼查看文件:宿主機的
$GITLAB_HOME/config/initial_root_password
或容器內(nèi)的/etc/gitlab/initial_root_password
注:The password file is automatically deleted in the first container restart after 24 hours.
基礎(chǔ)配置
GITLAB_OMNIBUS_CONFIG
GITLAB_OMNIBUS_CONFIG
環(huán)境變量,允許預(yù)設(shè) gitlab.rb
文件的配置項。
具有以下特點:
- 比容器內(nèi)的
gitlab.rb
配置文件更先被讀取。 - 只會在系統(tǒng)啟動時被加載,而不會直接修改
gitlab.rb
文件。 - 允許設(shè)置多個配置項,使用
;
符號隔開。
配置可包含 GitLab項目地址,數(shù)據(jù)庫配置等。具體請見: gitlab.rb文件配置模板
external_url
:項目主頁。如:"http://gitlab.example.com:8929"
gitlab_rails['gitlab_shell_ssh_port']
:SSH端口。如:2424
gitlab_rails['initial_root_password']
: 項目初始化時,預(yù)設(shè)的root用戶密碼。
項目首次啟動時,也可在容器內(nèi)注入環(huán)境變量 GITLAB_ROOT_PASSWORD
,預(yù)設(shè) root 用戶的登錄密碼。
Docker運行命令如下所示:
sudo docker run --detach
–hostname gitlab.example.com
–env GITLAB_OMNIBUS_CONFIG=“external_url ‘http://gitlab.example.com:8929’; gitlab_rails[‘gitlab_shell_ssh_port’] = 2424”
–publish 8929:8929 --publish 2424:22
–name gitlab
–restart always
–volume $GITLAB_HOME/config:/etc/gitlab
–volume $GITLAB_HOME/logs:/var/log/gitlab
–volume $GITLAB_HOME/data:/var/opt/gitlab
–shm-size 256m
gitlab/gitlab-ce:-ce.0
修改配置
- 進入容器:
sudo docker exec -it gitlab /bin/bash
- 修改配置文件:
editor /etc/gitlab/gitlab.rb
- ???????重載配置:
gitlab-ctl reconfigure
??????? 中文設(shè)置
- 全局設(shè)置:左下角菜單
Admin
,點擊:Settings
-Preferences
。 - 頁面找到
Localization
-Default language
用戶個性化設(shè)置:點擊左上角用戶頭像,下拉框選擇 Preferences
。頁面找到 Localization
- Language
當(dāng)前用戶,一定是更改 用戶個性化設(shè)置
,才能生效:
在頁面右上方的用戶菜單中,選擇“Settings”。
進入Settings頁面后,點擊左側(cè)導(dǎo)航欄中的“Preferences”選項。
在Preferences頁面中,找到“Localization”區(qū)域,將“Language”選項修改為“簡體中文”。
點擊頁面下方的“Save changes”按鈕,保存語言設(shè)置。
數(shù)據(jù)庫配置
自 GitLab 16.0
起,GitLab默認使用2個數(shù)據(jù)庫連接。我們可以禁用,回到原始的單連接模式。
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb gitlab_rails['databases']['ci']['enable'] = false sudo docker restart gitlab
系統(tǒng)郵箱配置
修改配置文件:/etc/gitlab/gitlab.rb
重載配置,使其生效:gitlab-ctl reconfigure
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.server”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “smtp user”
gitlab_rails[‘smtp_password’] = “smtp password”
gitlab_rails[‘smtp_domain’] = “example.com”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_openssl_verify_mode’] = ‘peer’
If your SMTP server does not like the default ‘From: gitlab@localhost’ you can change the ‘From’ with this setting.
gitlab_rails[‘gitlab_email_from’] = ‘gitlab@example.com’
gitlab_rails[‘gitlab_email_reply_to’] = ‘noreply@example.com’
If your SMTP server is using a self signed certificate or a certificate which is signed by a CA which is not trusted by default, you can specify a custom ca file. Please note that the certificates from /etc/gitlab/trusted-certs/ are not used for the verification of the SMTP server certificate.
gitlab_rails[‘smtp_ca_file’] = ‘/path/to/your/cacert.pem’
示例:QQ exmail (騰訊企業(yè)郵箱)
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxxx@xx.com" gitlab_rails['smtp_password'] = "password" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = false gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com' gitlab_rails['smtp_domain'] = "exmail.qq.com"
https://docs.gitlab.com/17.6/ee/install/docker/installation.html
Steps after installing GitLab: https://docs.gitlab.com/17.6/ee/install/next_steps.html
到此這篇關(guān)于使用docker compose安裝gitlab的文章就介紹到這了,更多相關(guān)docker compose安裝gitlab內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝MySQL并使用Navicat連接的操作方法
這篇文章主要介紹了Docker安裝MySQL并使用Navicat連接,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09.NET?6?從0到1使用Docker部署至Linux環(huán)境超詳細教程
這篇文章主要介紹了.NET?6?從0到1使用Docker部署至Linux環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05Docker安裝ClickHouse并初始化數(shù)據(jù)測試
clickhouse作為現(xiàn)在流行的數(shù)據(jù)分析數(shù)據(jù)庫,非常熱門,docker如何安裝ClickHouse,很多朋友并不是很明白,今天小編抽空給大家分享一篇教程關(guān)于Docker安裝ClickHouse并初始化數(shù)據(jù)測試的問題,一起看看吧2021-06-06docker image tag為什么出現(xiàn)none的原因及解決
當(dāng)我們使用docker加載新的鏡像時,有時候會發(fā)現(xiàn)Repository和Tag名稱都為none的情況,這通常是由于沒有指定正確的標(biāo)簽名稱或者倉庫名稱所導(dǎo)致的,本文主要介紹了docker image tag為什么出現(xiàn)none的原因及解決,感興趣的可以了解一下2023-10-10CentOS7環(huán)境下使用Docker搭建PHP運行環(huán)境的過程詳解
這篇文章主要介紹了CentOS7環(huán)境下使用Docker搭建PHP運行環(huán)境,文中給大家提到創(chuàng)建私有網(wǎng)絡(luò)及安裝nginx的方法,本文給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08docker 容器自定義 hosts 網(wǎng)絡(luò)訪問操作
這篇文章主要介紹了docker 容器自定義 hosts 網(wǎng)絡(luò)訪問操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03