docker pull gitlab/gitlab-ce:latest
在/home目录中创建gitlab目录,然后gitlab目录中创建三个文件夹,分别未opt log etc
然后执行
docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/log:/var/log/gitlab \
-v /home/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
# 重点:接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
docker
exec
-it gitlab
/bin/bash 进入容器
# 打开文件
vi /etc/gitlab/gitlab.rb
external_url 'http://ssh主机ip:9980'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = 'ssh主机ip'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
修改gitlab.yml (这一步原本不是必须的,因为gitlab.rb内配置会覆盖这个,为了防止没有成功覆盖所以我在这里进行配置,当然你也可以选择不修改gitlab.rb直接修改这里)
# 打开文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
##保存退出
:wq
让修改后的配置生效
gitlab-ctl reconfigure
重启gitlab
gitlab-ctl restart
在游览器输入如下地址,访问gitlab(eaxternal_url配置的就是这个)
http:
//192
.168.52.128:9980
如果访问不成功的话:
(1) 进入容器查看gitlab.rb和gitlab.yml文件是否配置成功
(2) 查看防火墙是否开放9980、9922端口
第一次访问默认是root账户,会需要修改密码(密码至少8位数,出现如下界面就基本上部署成功了),也有可能没有出现让你修改密码,这时需要登录容器,修改密码
容器中执行
gitlab-rails console -e production
root@b2624067e5a9:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
GitLab: 14.4.2 (1ce86e92f81) FOSS
GitLab Shell: 13.21.1
PostgreSQL: 12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4.1)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = '密码'
=> "12334555"
irb(main):003:0> user.password_confirmation = '密码'
=> "12334555"
irb(main):004:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 7df8304b-69a2-4ada-ba68-dcc812e14ceb) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f9141954320 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
irb(main):005:0>
这时用新密码就可以成功登录gitlab了