官方教程
https://docs.gitlab.com/omnib...nginx
搜索鏡像git
docker search gitlab
redis
下載鏡像文件sql
docker pull docker.io/gitlab/gitlab-ce
docker
注意:必定要配置阿里雲的加速鏡像 shell
建立GitLab 的配置 (etc) 、 日誌 (log) 、數據 (data) 放到容器以外, 便於往後升級, 所以請先準備這三個目錄。json
mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data
運行GitLab容器
注意http端口8090要和宿主機映射一致,不然後面http方式clone端口配很差bootstrap
docker run \ --detach \ --publish 2222:22 \ --publish 8090:8090 \ --publish 8443:443 \ --hostname x.x.x.x \ -v /mnt/gitlab/etc:/etc/gitlab \ -v /mnt/gitlab/log:/var/log/gitlab \ -v /mnt/gitlab/data:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime:ro \ --name gitlab_hw \ --restart always \ --privileged=true gitlab/gitlab-ce:latest
運行成功以後,將掛載文件同步到容器外面vim
修改/mnt/gitlab/etc/gitlab.rbcentos
把external_url改爲部署機器的域名或者IP地址
vim /mnt/gitlab/etc/gitlab.rb
# 修改http clone時顯示的端口 external_url 'http://x.x.x.x:8090' ... # 修改ssh clone時顯示的端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222
修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
這個文件改了沒什麼暖用, 會被gitlab.rb覆蓋, (這一步本來不是必須的,由於gitlab.rb內配置會覆蓋這個,爲了防止沒有成功覆蓋因此我在這裏進行配置,非docker運行gitlab的話你也能夠選擇不修改gitlab.rb直接修改這裏)vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
找到關鍵字 ## Web server settings
咱們進到目錄再看一下掛載文件是否同步到外面來了
[root@VM-0-16-centos gitlab]# ls /mnt/gitlab/* /mnt/gitlab/data: alertmanager backups bootstrapped gitaly git-data gitlab-ci gitlab-exporter gitlab-rails gitlab-shell gitlab-workhorse grafana logrotate nginx postgres-exporter postgresql prometheus public_attributes.json redis trusted-certs-directory-hash /mnt/gitlab/etc: gitlab.rb gitlab-secrets.json ssh_host_ecdsa_key ssh_host_ecdsa_key.pub ssh_host_ed25519_key ssh_host_ed25519_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub trusted-certs /mnt/gitlab/log: alertmanager gitaly gitlab-exporter gitlab-rails gitlab-shell gitlab-workhorse grafana logrotate nginx postgres-exporter postgresql prometheus puma reconfigure redis redis-exporter sidekiq sshd [root@VM-0-16-centos gitlab]#
這個時候咱們把容器中止再刪除,而後重啓服務
[root@localhost ~]# docker stop [容器ID] [root@localhost ~]# docker rm [容器ID] [root@localhost ~]# systemctl restart docker
再來從新建立容器
docker run \ --detach \ --publish 2222:22 \ --publish 8090:8090 \ --publish 8443:443 \ --hostname x.x.x.x \ -v /mnt/gitlab/etc:/etc/gitlab \ -v /mnt/gitlab/log:/var/log/gitlab \ -v /mnt/gitlab/data:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime:ro \ --name gitlab_hw \ --restart always \ --privileged=true gitlab/gitlab-ce:latest
網頁訪問8090端口, 初始用戶爲root