centos7下安裝gitlab

嘗試經過兩種方式搭建gitlab,直接安裝和docker安裝。linux

首先是官網的安裝方式:https://about.gitlab.com/installation/#centos-7

而後咱們須要安裝的是社區版(免費版本)git

參考下面兩篇教程、文檔:
GitLab的安裝及使用教程
https://packages.gitlab.com/gitlab/gitlab-ce/installgithub

  1. 首先按官網提示先安裝依賴,而後執行下面命令添加yum源,選擇gitlab-ce社區版
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 
  1. 更新本地yum緩存
sudo yum makecache
  1. 安裝gitlab-ce
sudo yum install -y gitlab-ce

 

 

安裝成功後會有如下圖標:
 
gitlab安裝完成
  1. 啓動gitlab:gitlab-ctl start,默認8080端口,設置端口須要修改配置vi /etc/gitlab/gitlab.rbexternal_url設置域名和端口號,沒有域名則設置ip
#GitLab經常使用命令 sudo gitlab-ctl start # 啓動全部 gitlab 組件; sudo gitlab-ctl stop # 中止全部 gitlab 組件; sudo gitlab-ctl restart # 重啓全部 gitlab 組件; sudo gitlab-ctl status # 查看服務狀態; sudo gitlab-ctl reconfigure # 啓動服務; sudo vim /etc/gitlab/gitlab.rb # 修改默認的配置文件; gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab; sudo gitlab-ctl tail # 查看日誌; 
  1. 輸入ip:端口號域名:端口號後訪問,若是出現502-Whoops, GitLab is taking too much time to respond,則說明端口被佔用,默認是8080端口,第一次訪問須要直接修改root密碼
     
    端口被佔用

    這裏修改的external_url會影響到後面建立工程的git遠程服務器地址,假如我修改成localhost
    external_url 'http://localhost:8099',則出現下圖的狀況,最好仍是填本身的域名或者直接ip地址。
     
    錯誤的域名

每次修改配置文件/etc/gitlab/gitlab.rb後須要gitlab-ctl reconfigure才能生效docker

上傳代碼到gitlab

  1. 到gitlab上隨便註冊一個帳號並登陸,而後建立了一個test項目倉庫
  2. 本地安裝了git,到項目根目錄下打開Git Bash,並執行git init建立本地倉庫
     
    git init

    建立了以後項目文件夾根目錄會出現.git的隱藏文件夾,這個就是咱們的本地倉庫,須要脫離版本控制的話能夠直接刪除這個.git文件夾
  3. 接下來能夠嘗試建立一個文件touch text.txt並寫入hello world,而後執行git add添加到暫存區,進而git commit到本地版本庫(這裏能夠發如今windows下使用的git bash跟linux下命令同樣)
     
    提交代碼到本地倉庫
  4. 而後須要提交到gitlab遠程倉庫,首先複製git項目地址
     
    gitlab上獲取地址

    而後git remote add命令添加咱們的gitlab遠程倉庫
     
    遠程倉庫地址
  5. 而後嘗試git push提交代碼,這裏彈出框要求輸入用戶名和密碼,輸入以後就能夠提交成功,而後到gitlab上也能夠看到提交記錄
     
    http方式須要用戶名密碼
  6. 上面是經過http方式提交,通常須要配置SSH Keys使用ssh方式,使用ssh-keygen生成密鑰文件id_rsa.pub(在c盤-》用戶-》用戶名-》.ssh目錄下)
#使用ssh-keygen生成密鑰文件id_rsa.pub ssh-keygen -t rsa -C "youremail@example.com" #獲取密鑰 cat ~/.ssh/id_rsa.pub 

7.將密鑰所有複製粘貼到gitlab下的settings->ssh keys中便可配置成功,而後就能夠到gitlab項目中選擇ssh地址
vim

 
ssh方式地址

8.刪除舊的遠程倉庫地址,並配置新的ssh方式的地址便可
 
修改遠程倉庫地址

9.還有個強制提交的問題,假如咱們的遠程倉庫已經存在文件,那麼能夠先pull合併到本地倉庫才能提交,或者是加 -f參數強制提交,可是gitlab會報錯
 
強制提交報錯

強制提交須要放開限制,選擇 unprotect
 
放開限制

 

Docker安裝gitlab

  1. 根據官網的docker安裝方式咱們找到docker獲取giblab-ce鏡像的命令
docker pull gitlab/gitlab-ce
 
gitlab-ce鏡像
  1. 直接docker run建立和啓動容器,而後直接訪問ip:端口號就能夠打開了gitlab頁面了
docker run -d -p 8078:80 --name mygitlab gitlab/gitlab-ce

容器80端口映射到宿主機8078端口,dockerfile上也能夠看到容器是80端口EXPOSE 443 80 22
windows

 
docker運行gitlab

 

  1. 能夠加-v指定數據卷,宿主機上能夠方便修改配置文件
cd ~ #能夠考慮把配置文件放到一個文件夾裏邊統一管理 mkdir gitlab cd ~/gitlab #啓動gitlab容器後,拷貝容器中的默認配置文件到當前文件夾 docker container cp mygitlab:/etc/gitlab . && mv gitlab config docker container cp mygitlab:/var/opt/gitlab . && mv gitlab data docker container cp mygitlab:/var/log/gitlab . && mv gitlab logs #先刪除舊的容器 docker rm mygitlab #建立新的容器,指定使用當前目錄下的配置目錄做爲數據卷 docker run -d -p 8078:80 --name mygitlab \ -v $PWD/config:/etc/gitlab \ -v $PWD/data:/var/opt/gitlab \ -v $PWD/logs:/var/log/gitlab \ gitlab/gitlab-ce 

可是啓動後報錯:
centos

 
添加數據卷後啓動報錯

而且在下方發現,可能因爲權限問題致使容器啓動失敗時須要去執行的命令
 
權限問題致使

在Stack Overflow上也搜索到相關報錯問題:
https://stackoverflow.com/questions/39480989/moving-location-of-dockerized-gitlab-data-volumes
須要修改權限:根據Stack Overflow上的提示咱們須要添加 --restart always讓容器報錯也不會自動關閉,並修改文件權限後重啓便可

 

#添加--restart always,容器報錯後不自動關閉 docker run -d -p 8078:80 --name mygitlab --restart always \ -v $PWD/config:/etc/gitlab \ -v $PWD/data:/var/opt/gitlab \ -v $PWD/logs:/var/log/gitlab \ gitlab/gitlab-ce #修改文件權限 docker exec -it mygitlab /bin/bash -c "chown -R git /var/opt/gitlab/gitlab-rails/uploads && find /var/opt/gitlab/gitlab-rails/uploads -type f -exec chmod 0644 {} \; && find /var/opt/gitlab/gitlab-rails/uploads -type d -not -path /var/opt/gitlab/gitlab-rails/uploads -exec chmod 0700 {} \;" docker exec -it mygitlab /bin/bash -c 'update-permissions' #重啓容器 docker restart mygitlab 

gitlab 官方推薦是4g內存,2g內存也能夠跑,內存佔用比較高。我的使用的話能夠用,但不必。感受仍是github或是開源中國的碼雲好。緩存

相關文章
相關標籤/搜索