需要对docker进行两个设置:
第一:
内存尽量调大,disk image指向一个不是系统盘的盘符下。
第二:设置挂载映射的盘符
只有设置了这个,下面容器挂载才能生效。
下面开始进行到安装的步骤
第一步:首先拉取镜像(CE 即社区免费版, EE 即企业版,需付费使用。)
docker pull gitlab/gitlab-ce
第二步:docker通过镜像构建容器
正常代码:
docker run -d -p 2222:22 -p 8888:80 -p 8443:443 --volume /d/docker/gitlab/config:/etc/gitlab --volume /d/docker/gitlab/logs:/var/log/gitlab --volume /d/docker/gitlab/data:/var/opt/gitlab --restart always --name gitlabb gitlab/gitlab-ce:latest
说明:
--detach: 设置容器后台运行 --hostname: 设置容器的 hostname --publish: 端口转发规则 ( 22: SSH访问端口, 80:Http 访问端口, 443:Https 访问端口, ----------------------------- 自定义GitLab端口转发规则 2222:Docker 容器的 SSH 访问端口, 8888:Docker 容器的 Http 访问端口, 8443:Docker 容器的 Https 访问端口, ) --name:容器名称 --restart always:每次启动容器就重启GitLab --volume: 共享目录挂载,即 docker 容器内外数据共享 ( /docker/gitlab/data: 应用程序数据, /docker/gitlab/logs:GitLab 的 log, /docker/gitlab/config:GitLab 的配置文件)
注意:所有:左边都代表宿主主机,例如-p 8888:80表示容器的80端口映射到宿主机器的8888端口。 --volume /d/docker/gitlab/logs:/var/log/gitlab代表容器的/var/log/gitlab文件挂载到宿主主机的d:/docker/gitlab/logs目录。
但是安装以上build代码执行会出现各种的权限问题,推测是因为挂载到宿主机器的文件权限问题。最后搜索了相关资料,有人也遇到了类似问题,说的是window环境下 /etc/gitlab和/var/opt/gitlab是无法挂载的,所以我把这两个挂载去掉了,变成以下:
docker run --detach --publish 443:443 --publish 801:80 --publish 22:22 --name gitlab --restart always --volume /d/docker/gitlab/logs:/var/log/gitlab gitlab/gitlab-ce:latest
大概等待了几分钟,此次容器创建成果,并且可以打开。
然后发现无法登录,所以开始找如何设置用户名密码,默认用户是root,开始重置root的密码:
执行代码:docker exec -it gitlab /bin/bash 进入到gitlab容器(注意,我的容器名称为gitlab),进入后,需要以下三个代码:
cd /opt/gitlab/bin gitlab-rails console u=User.where(id:1).first u.password='12345678' u.password_confirmation='12345678' u.save
执行效果:
如是,密码更改为123456.
下面是更改密码的详细步骤:
1 进入容器
2 进入gitlab的bin目录
cd /opt/gitlab/bin
3 执行gitlab-rails console
root@gitlab:/opt/gitlab/bin# gitlab-rails console-------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 14.0.2 (bac4ee4a9e2) FOSS GitLab Shell: 13.19.0 PostgreSQL: 12.6--------------------------------------------------------------------------------Loading production environment (Rails 6.1.3.2)irb(main):001:0>
4 找到root的用户,输入u=User.where(id:1).first,然后回车
irb(main):001:0> u=User.where(id:1).first=> #<User id:1 @root>
5 修改password,输入u.password='12345678',然后回车
irb(main):002:0> u.password='12345678'=> "12345678"
6 修改确认密码
irb(main):004:0> u.password_confirmation='12345678'=> "12345678"
7 保存修改,输入u.save,然后回车,等到输出true,这时,密码修改成功。
irb(main):005:0> u.saveEnqueued ActionMailer::MailDeliveryJob (Job ID: d4c64606-0597-46ae-a7b5-fa9bb01c2685) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007fe59ae70c98 @uri=#<URI::GID gid://gitlab/User/1>>]}=> true
至此,密码修改成功,可以用12345678密码登录进去了
作者:程空万里
链接:https://www.jianshu.com/p/f1371ab3f83c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。