官方中文教程: https://www.gitlab.com.cn/ins...
官方安裝連接: https://about.gitlab.com/install
普通方式安裝請見: https://segmentfault.com/a/11...
環境要求:內存至少4G,GitLab是很耗內存滴nginx
通常會將 GitLab 的配置 (etc) 、 日誌 (log) 、數據 (data) 放到容器以外, 便於往後升級git
docker pull gitlab/gitlab-ce:11.6.4-ce.0 # 經過docker run中加入環境變量,取名爲gitlab docker run --detach \ # 後臺運行 -d # --hostname song.local \ # 指定容器域名,未知功能:建立鏡像倉庫的時候使用到 -p 8443:443 \ # 將容器內443端口映射到主機8443,提供https服務 -p 80:80 \ # 將容器內80端口映射到主機8080,提供http服務 -p 10022:22 \ # 將容器內22端口映射到主機1002,提供ssh服務 --name gitlab \ # 指定容器名稱 --restart=unless-stopped \ # 容器運行中退出時(不是手動退出),自動重啓 --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \ # 將本地/var/lib/docker/volumes/gitlab-data/etc掛載到容器內/etc/gitlab --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \ # 將本地將本地/var/lib/docker/volumes/gitlab-data/log掛載到容器內/var/log/gitlab --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \ # 將本地將本地/var/lib/docker/volumes/gitlab-data/data掛載到容器內/var/opt/gitlab gitlab/gitlab-ce:11.6.4-ce.0 # 鏡像名稱:版本
爲了方便往後啓動,建立一個啓動腳本:
gitlab-docker-restart.sh
,代碼以下:
#!/bin/bash serverName="gitlab" imageName="gitlab/gitlab-ce:11.6.4-ce.0" function runServer(){ docker run --detach \ -p 8443:443 \ -p 80:80 \ -p 10022:22 \ --name ${serverName} \ --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \ --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \ --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime \ --restart=unless-stopped \ ${imageName} } runningCount=`docker ps -f status=running -f status=restarting | grep -w ${serverName} |wc -l`; if [[ ${runningCount} > 0 ]];then echo "docker restart 重啓項目:${serverName}" docker restart ${serverName} exit 0 fi serverCount=`docker ps -f status=exited -f status=created | grep -w ${serverName} |wc -l`; # 判斷是否已經啓動過,且端口爲默認端口 if [[ ${serverCount} > 0 ]];then if [[ ${serverCount} > 1 ]]; then echo "Error : 查找到多個 ${serverName} 容器,請手動啓動" exit 1 else echo "docker start 啓動項目:${serverName}" docker start ${serverName} fi else name=${imageName%%:*} tag=${imageName##*:} # 判斷是否有該鏡像 imageCount=`docker images | grep -w ${name} | wc -l`; if [[ ${imageCount} > 0 ]];then echo "docker run 第一次啓動項目: ${imageName}" runServer else echo "Error : 尚未該鏡像" exit 1 fi fi
將 gitlab-docker-restart.sh
賦予執行權限:docker
chmod +x gitlab-docker-restart.sh
以後直接執行 gitlab-docker-restart.sh
便可完成gitlab的重啓。shell
# 修改gitlab.rb配置文件 $ vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb # 編輯gitlab.rb文件 ## GitLab NGINX nginx['listen_port'] = 80 # gitlab nginx 端口。默認端口爲:80 ## GitLab Unicorn unicorn['listen'] = 'localhost' unicorn['port'] = 8080 #默認是8080端口 ## GitLab URL 配置http協議所使用的訪問地址 external_url 'http://song.local' # clone時顯示的地址,gitlab 的域名 # 配置ssh協議所使用的訪問地址和端口 gitlab_rails['gitlab_ssh_host'] = 'song.local' gitlab_rails['gitlab_shell_ssh_port'] = 10022
# 退出容器後,重啓容器 docker restart gitlab
假如你將gitlab配置文件已經掛載到外部存儲路徑下,只要在相應目錄(如這裏的/srv/gitlab/config)下修改gitlab.rb文件,並重啓容器就可。vim
將容器時間和host在一個時區segmentfault
-v /etc/localtime:/etc/localtime
訪問 http://127.0.0.1:80
,系統默認的管理員帳號爲 root,第一次訪問 GitLab,會要求初始化管理員帳號的密碼。bash