官方教程
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