摘要:作為互聯(lián)網工作者,相信對這個全球最大的同性交友網站一定不會陌生,使用的是目前如日中天的分布式版本控制系統(tǒng)。等這個狀態(tài)變成時則說明已經部署完成,可以訪問了。修改完成后,輸入命令使配置生效,然后重啟即可。
作為互聯(lián)網工作者,相信對 GitHub 這個 全球最大的同性交友網站 一定不會陌生,GitHub 使用的是目前如日中天的 Git 分布式版本控制系統(tǒng)。
Git 是什么?Git 是目前世界上最先進的分布式版本控制系統(tǒng),沒有之一!關于 Git 與 GitHub 的相關內容可以查看我往期的教程。而本篇博客要介紹的是如何搭建一套私人的類似于 GitHub 的網站【GitLab】,它可以為個人、組織、企業(yè)提供項目或代碼的管理功能。
Git 與 GitHub具體請查看我往期的博客文章:
Git 基礎用法總結
Git 系列之初識 Git 與 Github
Git 系列之 Github 基礎設置及使用詳解
安裝環(huán)境GitLab 的搭建有多種方式,在本篇博客將介紹一種比較簡單快捷的方式,那就是使用 Docker 來搭建。
系統(tǒng):Ubuntu 18.04
Docker: 18.9.05
GitLab: 最新版本 latest
需求內存:最低 2 GB
想要使用 Docker 來搭建 GitLab 的話需要先安裝 Docker, 關于 Docker 的詳細安裝步驟已經在我的上一篇博客中介紹了。請前往查看:Docker 之 ubuntu 安裝。
搭建 GitLab在按照上篇博客成功安裝了 Docker 之后,我們就可以在 Docker 中來搭建 GitLab 了。
GitLab 分為 社區(qū)版(Community Edition,縮寫為 CE)和 企業(yè)版(Enterprise Edition,縮寫為 EE)。社區(qū)版是免費的,而企業(yè)版包含一些收費服務,一般來說個人開發(fā)者用社區(qū)版就足夠了,本篇博文的教程也只是針對社區(qū)版。
首先需要先下載 GitLab CE 的鏡像,使用下面的命令進行下載,因為文件較大,所以可能需要一點時間,耐心等待即可。
# 不加 tag 則默認為最新版本 latest (一般使用這種) $ sudo docker pull gitlab/gitlab-ce # 如果需要下載其他版本,加上對應的 tag 即可,如: $ sudo docker pull gitlab/gitlab-ce:rc
下載完成之后只需要一行命令即可啟動 GitLab ,復制下面的命令直接運行即可。
$ sudo docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
這條命令很長,我們來分解一下看看每行都代表什么意思。
$ sudo docker run --detach --hostname gitlab.example.com # 設置主機名或域名 --publish 443:443 --publish 80:80 --publish 22:22 # 本地端口的映射 --name gitlab # gitlab-ce 的鏡像運行成為一個容器,這里是對容器的命名 --restart always # 設置重啟方式,always 代表一直開啟,服務器開機后也會自動開啟的 --volume /srv/gitlab/config:/etc/gitlab # 將 gitlab 的配置文件目錄映射到 /srv/gitlab/config 目錄中 --volume /srv/gitlab/logs:/var/log/gitlab # 將 gitlab 的log文件目錄映射到 /srv/gitlab/logs 目錄中 --volume /srv/gitlab/data:/var/opt/gitlab # 將 gitlab 的數(shù)據(jù)文件目錄映射到 /srv/gitlab/data 目錄中 gitlab/gitlab-ce:latest # 需要運行的鏡像
運行成功之后,可以使用下面的命令列表所有的容器,當然其中應該包括剛運行的 gitlab容器。
$ sudo docker container ls
如上圖所示,可以看到 GitLab 已經在運行了,其他有一個屬性 STATUS 為 health: starting,說明 gitlab 的服務正在啟動中,還沒有啟動完畢。等這個狀態(tài)變成 healthy 時則說明已經部署完成,可以訪問了。使用 ip addr 命令查看系統(tǒng)的 IP 地址,然后在瀏覽器輸入地址即可訪問。
配置郵件服務器想要讓 GitLab 給你發(fā)送郵件,還要配置一下郵件服務器,這里以QQ郵箱的 IMAP/SMTP服務 來配置。
打開郵箱->設置->賬戶,然后開啟 IMAP/SMTP服務,然后根據(jù)文檔獲取 授權碼 ,這步比較重要。
然后打開在系統(tǒng)中打開文件 /srv/gitlab/config/gitlab.rb 文件,可以使用gedit、vi、vim等等編輯器編輯。找到 Email Settings的注釋位置,然后添加以下內容:
### Email Settings gitlab_rails["smtp_enable"] = true # 開啟 SMTP 功能 gitlab_rails["smtp_address"] = "smtp.qq.com" gitlab_rails["smtp_port"] = 465 # 端口不可以選擇587,測試過會發(fā)送郵件失敗 gitlab_rails["smtp_user_name"] = "212****[email protected]" # * 你的郵箱賬號,也可以是ge**[email protected]等 gitlab_rails["smtp_password"] = "cdns********fdgc" # * 授權碼,不是密碼 gitlab_rails["smtp_authentication"] = "login" gitlab_rails["smtp_enable_starttls_auto"] = true gitlab_rails["smtp_tls"] = true gitlab_rails["gitlab_email_from"] = "212****[email protected]" # * 發(fā)件人信息,必須跟‘smtp_user_name’保持一致,否則報錯 gitlab_rails["smtp_domain"] = "qq.com" # 修改并不影響 可修改為exmail.qq.com/james.com 經測試完全不影響,刪除也不影響,并且發(fā)送的郵件都是一樣的。
上面這些參數(shù),除了注釋開頭加了 * 的需要修改為你自己的信息之外,其他信息照寫即可,配置完成后保存。然后輸入下面的命令使配置生效。
# 使用 Docker安裝的 gitlab 只能使用下面的命令,gitlab-ctl reconfigure命令是不會生效的 $ sudo docker exec gitlab gitlab-ctl reconfigure
使配置生效之后我們可以使用 gitlab 自帶的工具進行一下測試。依次執(zhí)行下面的命令:
# 開啟 gitlab 的 bash 工具 $ sudo docker exec -it gitlab bash # 開啟 gitlab-rails 工具 $ gitlab-rails console production # 發(fā)送郵件進行測試,換自己郵箱哈~ Notify.test_email("[email protected]", "Message Subject", "Message Body").deliver_now
測試完成之后重啟 gitlab 即可。
配置 Git 倉庫訪問路徑在之前第一次運行 gitlab 容器的時候,有一個參數(shù) hostname 為 gitlab.example.com , 如果你沒有配置相應域名的話,你的倉庫的地址將會變?yōu)橄旅孢@樣:
ssh : [email protected]:James/test.git
http:http://gitlab.example.com/Jam...
如果域名不存在的話,這個地址是無法進行 clone 的。
為了解決這個問題,我們可以設置成 IP 或 你配置了的域名來訪問。
打開文件 /srv/gitlab/config/gitlab.rb 文件并找到 # external_url "GENERATED_EXTERNAL_URL" 這行,去掉注釋,并按照下面的格式修改。
# ip 形式 external_url "http://192.168.1.44" # 域名形式 external_url "http://JemGeek.com" # 子域名 external_url "http://gitlab.JemGeek.com" # 其他形式 external_url "http://JemGeek.com/gitlab"
以上形式都是可以的。修改完成后,輸入命令 sudo docker exec gitlab gitlab-ctl reconfigure 使配置生效,然后重啟 gitlab 即可。
重啟之后,倉庫的地址將變?yōu)橄旅孢@樣,以 ip 形式為例:
ssh : [email protected]:James/test.git
http:http://192.168.1.44/James/tes...
容器的常用操作在 Docker 中,gitlab 是作為一個容器存在的,gitlab 的所有程序,配置,依賴等都在這個容器中。下面列出一些容器的常用操作命令。
# 開啟 gitlab 容器 # 上面那個特別長的那一條命令僅在第一次運行 gitlab 的時候需要 # 之后開啟 gitlab 使用下面的命令即可 $ sudo docker start gitlab # 關閉 gitlab $ sudo docker stop gitlab # 重啟 gitlab $ sudo docker restart gitlab其他
關于Docker 及 GitLab 的知識還有很多,我會在后續(xù)的文章繼續(xù)介紹,歡迎您持續(xù)關注本博客。
更多技術文章歡迎關注我的博客主頁:http://JemGeek.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/27811.html
摘要:本文章用于描述如何從零開始進行阿里云倉庫的搭建,以及過程中遇到的相關問題。涉及的內容包括,,,,。目標硬盤掛載阿里云額外購買的硬盤服務,需要僅掛載后才可以正常使用。域名代理免費代理的域名通過阿里云域名解析暴露到外網。 本文章用于描述如何從零開始進行阿里云倉庫的搭建,以及過程中遇到的相關問題。涉及的內容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...
摘要:二配置修改配置文件編輯文件端口。將容器時間和在一個時區(qū)三訪問訪問,系統(tǒng)默認的管理員賬號為,第一次訪問,會要求初始化管理員賬號的密碼。 官方中文教程:https://www.gitlab.com.cn/ins... 官方安裝鏈接:https://about.gitlab.com/install 普通方式安裝請見:https://segmentfault.com/a/11... 環(huán)境...
摘要:現(xiàn)階段,容器技術已經相當成熟,就算是中小型公司也可以基于鏡像服務輕松搭建自己的集群服務。線上環(huán)境可以設置為,測試環(huán)境設置為安裝創(chuàng)建一個項目登錄創(chuàng)建一個項目。接下來我們就可以訪問集群任意一臺機器的端口。 現(xiàn)階段,Docker容器技術已經相當成熟,就算是中小型公司也可以基于 Gitlab、Aliyun鏡像服務、Docker Swarm 輕松搭建自己的 Docker集群服務。 安裝 Dock...
摘要:服務的依賴實現(xiàn)解耦,有多個服務依賴同一個,其中一個需要重啟,而導致其他服務中斷最重要的原因我想試試閑話少說了。。。拉取鏡像注意如果沒有指定對應的版本,默認會拉取版本經過漫長的等待。。。也可能會出現(xiàn)莫名其妙的問題。。。 docker搭建gitlab 構想: 通過 docker 容器技術,在centos7系統(tǒng)下,使用docker鏡像,安裝gitlab,并將gitlab的http,https...
閱讀 2257·2023-05-11 16:55
閱讀 3541·2021-08-10 09:43
閱讀 2654·2019-08-30 15:44
閱讀 2472·2019-08-29 16:39
閱讀 614·2019-08-29 13:46
閱讀 2040·2019-08-29 13:29
閱讀 952·2019-08-29 13:05
閱讀 718·2019-08-26 13:51