下載gitlab鏡像
docker search gitlab

安裝截圖中圈出來的這個。
docker pull gitlab/gitlab-ce

安裝成功后查看鏡像。

PS:我使用上述鏡像啟動容器后,服務器內存一直在增大(本機只有2核4G),網上查了很多方案最終沒有解決。后來使用了1個個人提供的鏡像,進行后面的流程。
將鏡像啟動為容器
docker run -d \ -p 8443:443 \ -p 8084:80 \ --name gitlab \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce

訪問gitlab
使用服務器的IP+端口,即可訪問gitlab。

在上述登錄界面,輸入root賬號用戶名密碼,即可管理員登錄。
但我們一般重新注冊個自己的賬號,使用自己注冊的賬號進行使用。
新建群組/項目
使用自己注冊的賬號登錄后,新建群組

新建項目

新建項目成功后,查看到其git地址為一串亂碼,用戶無法直接訪問使用。

解決git項目地址非IP問題
目前要解決git項目地址為亂碼,而非IP地址的問題。由於我們使用的docker部署,因此我們進入容器里面,修改/etc/gitlab/gitlab.rb

external_url配置項增加IP地址和端口配置(這里的端口是80,即容器里面的地址,而不是宿主機外面的8084,因此external_url中的端口80也可以不寫)


在容器里面重新加載配置
gitlab-ctl reconfigure
重啟服務
gitlab-ctl restarth
好,修改完畢!
刷新頁面,重新進入gitlab中,觀察項目的git地址。可以看出,這個配置確實修改了項目的git地址。


個人PC生成密鑰並配置到git賬號
由於個人PC訪問gitlab如果不設置ssh密鑰的話,還要輸入用戶名密碼比較麻煩,因此需要先在個人PC上設置公鑰、私鑰,並將公鑰配置到用戶gitlab賬號的SSH密鑰中。
本地打開git bash,使用命令生成公鑰、私鑰。
ssh-keygen -t rsa -C 'xxx@xxx.com'
然后一路回車(-C 參數是你的郵箱地址)

然后打開公鑰,復制一下(公鑰的路徑在生成的時候有打印)

這里順便看下生成的文件和位置

將上述id_rsa.pub中的內容,復制到個人資料設置-SSH密鑰-增加密鑰中。 
拉取項目
1、在本地電腦新建1個文件夾,用於放后面拉取的項目
2、進入該文件夾,郵件Git Bash Here
3、設置用戶名、郵箱(你的git賬號注冊時的用戶名郵箱)
git config --global user.name "你的名字" git config --global user.email "你的郵箱"

4、克隆項目
git clone 項目地址
但是此時我們拿這個地址去clone項目,並不會成功,還會觸發輸入密碼。

此時還需要進行一些設置
a、在/etc/gitlab/gitlab.rb中增加gitlab_ssh_host和gitlab_shell_ssh_port。注意這里的222,為宿主機的端口。對應

PS:在上述使用222端口的過程中,本人還遇到了新問題。即一開始啟動鏡像時,我並沒有將22端口映射出去。這里參考了這篇文章完成了已啟動容器后,增加映射端口的操作。
https://blog.csdn.net/qq_41538097/article/details/107078157

b、使用命令重新加載gitlab配置及重啟gitlab-ctl reconfigure、gitlab-ctl restart。重啟后,再查看gitlab網站上項目地址的變化。
SSH地址已增加了剛剛配置的222端口。

HTTP地址並沒有變化,因為沒有設置。

c、確保服務器對外放開了222端口。

d、重新使用最新的,帶上222端口的項目地址進行更新,更新成功。
復制成功,查看文件夾下也有項目上的內容。

5、提交代碼到gitlab
上述調試后,從gitlab拉取已調通。下面我們進一步測試下,本地上傳到gitlab。
我們在本地新增1個文件夾、1個文件。

在項目文件夾下右鍵點擊->Git Bash Here,輸入
git status

標紅的為其識別需要提交的文件。
提交代碼,輸入。
git add test/gitpushtest.txt
(“git add“后加“.”則添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )

然后輸入以下命令提交並添加提交信息
git commit -m "message"

最后輸出以下命令提交到gitlab該項目的master分支
git push origin master

提交完成。去gitlab項目網站上查看,提交成功。

