官方教程
https://docs.gitlab.com/omnibus/docker/git
建議虛擬機內存2G以上docker
搜索鏡像json
docker search gitlab
下載鏡像文件app
docker pull docker.io/gitlab/gitlab-ce
注意:必定要配置阿里雲的加速鏡像 ssh
建立GitLab 的配置 (etc) 、 日誌 (log) 、數據 (data) 放到容器以外, 便於往後升級, 所以請先準備這三個目錄。curl
mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data
建立容器以前,咱們先關閉下防火牆,重啓docker服務tcp
systemctl stop firewalld.service firewall-cmd --state systemctl daemon-reload systemctl stop firewalld.service
運行GitLab容器 gitlab
docker run \ --detach \ --publish 2222:22 \ --publish 8090:80 \ --publish 8443:443 \ --hostname 192.168.56.3 \ -v /mnt/gitlab/etc:/etc/gitlab \ -v /mnt/gitlab/log:/var/log/gitlab \ -v /mnt/gitlab/data:/var/opt/gitla \ -v /etc/localtime:/etc/localtime:ro \ --name gitlab \ --restart always \ --privileged=true gitlab/gitlab-ce:latest
運行成功以後,將掛載文件同步到容器外面阿里雲
修改/mnt/gitlab/etc/gitlab.rburl
把external_url改爲部署機器的域名或者IP地址
vi /mnt/gitlab/etc/gitlab.rb
external_url 'http://192.168.56.3'
按 i 進行編輯,編輯好了按Esc,:wq 進行保存
修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
vi /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
找到關鍵字 * ## Web server settings *
按斜槓進行搜索
/Web server settings
咱們進到目錄再看一下掛載文件是否同步到外面來了
[root@localhost ~]# cd /mnt/gitlab/etc/ [root@localhost etc]# ls gitlab.rb ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key trusted-certs gitlab-secrets.json ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
這個時候咱們把容器中止再刪除,而後重啓服務
[root@localhost ~]# docker stop 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7 [root@localhost ~]# docker rm 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7 [root@localhost ~]# systemctl restart docker [root@localhost ~]#
再來從新建立容器
docker run \
--detach \
--publish 2222:22 \
--publish 8090:80 \
--publish 8443:443 \
--hostname 192.168.56.3 \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitla \
-v /etc/localtime:/etc/localtime:ro \
--name gitlab \
--restart always \
--privileged=true gitlab/gitlab-ce:latest
這個時候咱們來查一下,看一下容器有沒有分配ip地址,有的話表示建立容器成功了。
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d07898b3749d gitlab/gitlab-ce "/assets/wrapper" About a minute ago Up Less than a second (health: starting) 22/tcp, 0.0.0.0:8090->80/tcp, 0.0.0.0:8443->443/tcp gitlab f264e5f1be41 sonatype/nexus3 "sh -c ${SONATYPE_DI…" 2 hours ago Up 2 hours 0.0.0.0:8081->8081/tcp nexus [root@localhost ~]# docker inspect d07898b3749d
訪問一下ip地址
[root@localhost ~]# curl 172.17.0.3:80
curl: (7) Failed connect to 172.17.0.3:80; Connection refused
拒絕鏈接,說明啓動沒有那麼快,還須要一些時間
關閉防火牆,查看下狀態,這個時候防火牆已經關閉了。
[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# firewall-cmd --state not running [root@localhost ~]#
查看了下容器狀態,發現gitlab一直是重啓狀態
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUSPORTS NAMES d07898b3749d gitlab/gitlab-ce:latest "/assets/wrapper" 19 minutes ago Restarting (1) 1 second ago gitlab
查看日誌
sudo docker logs gitlab
錯誤就不在這裏演示了,經過谷歌解決了個人問題,
解決好以後重啓下服務跟gitlab
從新驗證,好了
等個幾分鐘,從新刷新下頁面
至此gitlab搭建成功了,歷經千辛萬苦。