從docker
鏡像拉取代碼,docker pull gitlab/gitlab-ce:latest
.
創建/srv/gitlab
目錄sudo mkdir /srv/gitlab
啟動GitLab CE
容器,並發布訪問SSH
,HTTP
,HTTPS
的端口.
所有GitLab
數據將存儲在/srv/gitlab
目錄.
如果只在本機測試,把hostname
改為本機IP地址,(如果是在虛擬機中啟動,主機測試,把IP地址設置為虛擬機ip地址).如果讓外部系統訪問則改為外網IP.
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
如果開啟了selinux
,運行下面的代碼:
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:Z --volume /srv/gitlab/logs:/var/log/gitlab:Z --volume /srv/gitlab/data:/var/opt/gitlab:Z gitlab/gitlab-ce:latest
--restart always
: 系統重啟后,容器啟動
確保docker
有足夠的權限在掛在的卷中創建文件.
邊間GitLab配置文件,可以打開一個shellsudo docker exec -it gitlab /bin/bash
,或者直接編輯文件sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb
在瀏覽器中輸入gitlab所在服務器的IP地址,初次使用需要修改密碼.
生成keyssh-keygen -t rsa -C "email"
,將key添加到gitlab上。
配置.ssh
目錄和文件的權限
chmod 755 ~/.ssh/ chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub chmod 644 ~/.ssh/known_hosts
權限過高會出錯。
免密碼登錄
//將文件拷貝至遠程服務器
scp ~/.ssh/id_rsa.pub root@<remote_ip>:pub_key
//將內容追加到authorized_keys文件中, 不過要登錄遠程服務器來執行這條命令
cat ~/pub_key >>~/.ssh/authorized_keys
編輯/etc/ssh/sshd_config
文件,將PubkeyAuthentication yes
行和AuthorizedKeysFile .ssh/authorized_keys
的注釋刪掉.重啟sshd
服務.