GitLab是由GitLab Inc.開發,使用MIT許可證的基於網絡的Git倉庫管理工具,且具有wiki和issue跟蹤功能。 GitLab 由烏克蘭程序員Dmitriy Zaporozhets 和 Valery Sizov 開發,它由Ruby 寫成。後來,一些部分用Go 語言重寫。
爲了開發項目,嘗試在私有服務器上安裝gitlab。
這裏使用docker安裝。官方網站上有quick start,但是很多配置就沒有詳細講,十分不方便。這裏使用我自己的yml文件,更加方便。
安裝docker
下載docker安裝腳本進行安裝:
wget -qO- https://get.docker.com/ | sh
啓動docker:
sudo service docker start
國內可以使用鏡像加速。這裏不贅述了。
安裝docker-compose
Docker Compose是一個用來定義和運行復雜應用的Docker工具。一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啓動容器。
安裝過程如下:
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
如果安裝成功,此時就會顯示docker-compose的版本信息。
編寫yml文件
新建文件夾來存放yml文件。使用yml文件可以快速完成配合,便於維護。
mkdir gitlab
cd gitlab
vim docker-compose.yml
按i切換到輸入模式。
輸入一下內容,保存退出。
web:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: "hostname.com"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "http://hostname:8081"
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "..."
gitlab_rails['smtp_password'] = "..."
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "..."
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['gitlab_shell_ssh_port'] = 2280
ports:
- '8081:8081'
- '443:443'
- '2280:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
這裏配置了smtp信息。 用於發送郵件。 我使用的是騰訊企業郵箱。如果不需要直接刪除相關配置。
由於服務器沒有開放80 和 22 端口。這裏設置了8081 和 2280 端口。 注意config中要有對應的配置(第一行和最後一行)。
docker 運行gitlab
使用指令運行gitlab。
docker-compose up -d
此時訪問對應服務器url就可以設置密碼。然後以root用戶名登錄。
可能的問題
1. 在安裝之後要等一段時間纔可以訪問網站。開始時會提示502。可以通過docker logs -f gitlab查看配置信息。配置完成後才能使用。
2. 如果配置已經完成,配置信息中出現http states 200 但是依然無法訪問,需要檢查端口映射是否正確。
3. 如果一直提示配置信息中出現端口無法監聽,則使用其他端口重新安裝。
4. 如果一直出現502,有可能服務器配置不夠。