【Gitlab】配置、运行Gitlab容器实例及简单使用测试

        其实,回过头来看,Gitlab的配置、安装和运行并不是难,主要是在root用户密码如何获取的问题上花了很多时间,走了很多的弯路。

# 默认下载的镜像就是latest
$ docker pull gitlab/gitlab-ce

# 创建Gitlab镜像挂载到本地的三个重要目录
$ mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data

# 创建gitlab-net网络
$ docker network create gitlab-net

##########################################################################
# 80是http协议访问端口,本地和容器都是80;
# 443是https协议访问端口,本地10443,容器443;
# 22是SSH请求的端口,本地10022,容器22;
# 映射的目录分别是配置、日志和数据;
# env是启动的时候初始化给容器的参数
##########################################################################
$ docker run -d \
    --hostname 192.168.223.201 \
    -p 80:80 \
    -p 10443:443 \
    -p 10022:22 \
    --name gitlab-ce \
    --restart unless-stopped \
    -v /data/gitlab/config:/etc/gitlab \
    -v /data/gitlab/logs:/var/log/gitlab \
    -v /data/gitlab/data:/var/opt/gitlab \
    -v /etc/localtime:/etc/localtime \
    --network gitlab-net \
    --env GITLAB_OMNIBUS_CONFIG="external_url='http://192.168.223.201'; gitlab_rails['gitlab_ssh_host'] = '192.168.223.201'; gitlab_rails['gitlab_shell_ssh_port'] = 10022" \
 	--env TZ=Asia/Shanghai \
    gitlab/gitlab-ce:latest

        启动需要一段时间,具体时长没做记录,大概需要几分钟才能完全启动起来。启动成功后,我们可以通过服务器IP+80端口来(http://192.168.223.201/)访问到Gitlab的登陆页,默认使用http协议,当然也可以通过为nginx创建证书来启用https协议。

        

        下面最头疼的事情来了,据我在网上查阅到的资料,无一例外的说,首次访问登陆页面时,会提示设置root用户密码,而我这个登陆界面上并没有这样的提示,然后我就凌乱了(后来发现这与Gitlab官方文档总是跳转到企业版的docs有很大的关系)。

        秀一波魔怔操作:

        1)注册个新用户?OK!但是注册新用户后,登陆时会出现下面的提示:用户被Blocked。

Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error.

        2)难道要注册个root用户?OK!注册root用户时,提示用户已经存在。

        3)难道要给root用户配置一个初始化密码?OK!配置了初始化密码后,重启,使用root用户,以及初始化密码登陆,依旧无法成功登录。

        在挂载出来的配置文件目录下(即/data/gitlab/config),有一个gitlab.rb配置文件, 里面有一个被注释的字段,修改后重启gitlab-ce容器实例。

# gitlab_rails['initial_root_password'] = "password"

修改为:

 gitlab_rails['initial_root_password'] = "Gitlab12345"

        4)最后在研究 gitlab.rb 配置文件里面的配置项时,发现其中有一个配置项,该配置项显示root用户密码在启动时会记录到容器里面一个叫initial_root_password的文件里面,而我之前已经把这个/etc/gitlab的目录已经挂载出来。那么就去这个目录下面看看吧,看看有没有这个文件。不出所料文件的确存在,而且这个文件里面记录了一个加密的密码,而且从NOTE说明来看,这个文件首次重新配置后的24小时将被删除(官方文档里面貌似也提到了,最开始没看到,有点尴尬!至于为什么没看到,文章开篇已经做了说明)。 

        使用root用户和这个加密的初始密码,终于登陆成功。然后第一件事就是修改root用户密码!必须要修改,不然密码丢了,密码找回将是一件非常痛苦的事情。

#### Toggle if initial root password should be written to /etc/gitlab/initial_root_password
# gitlab_rails['store_initial_root_password'] = true

##########################################
$ pwd
/data/gitlab/config
$ ls -ltr initial_root_password
-rw------- 1 root root 749 Jul 27 00:50 initial_root_password
$ cat initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: 9T6nu9PmxrMTuZwhgqEarjxgCnN3jxTRhHtX7WDA7iY=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

        此时,因为这个root用户登录密码,时间过去了超过2个半小时(还好,终于在下午1点午睡前搞定)……

        下面的截图是官方文档对于root初始化密码的一个简单说明:

         

        下面是官方文档给出的服务器硬件性能与用户量(并发?)的关系:

# CPU
1)4 cores is the recommended minimum number of cores and supports up to 500 users;
2)8 cores supports up to 1000 users;

# 内存
1)4GB RAM is the required minimum memory size and supports up to 500 users;
2)8GB RAM supports up to 1000 users;

        在仪表板 · 管理中心 · GitLab页面(http://192.168.223.201/admin)可以看到很多功能和设置项,你甚至可以通过GItlab集成的Grafana来实现可视化监控。

        http://192.168.223.201/-/grafana/login/gitlab 

        在管理中心创建用户【武陵之光】,保存,然后再点击该用户,设置用户密码。退出root用户,并使用该新建的用户登陆到gitlab,点击新建项目,新建完成后,点击该项目,可以发现gitlab提供可一个clone项目到本地、从本地上传文件以及文件夹到项目的测试命令。

        下面就是在Windows PC里面安装并使用git bash来执行远程服务器上的测试项目克隆到本地,以及从本地上传文件到远程服务器的项目测试:

# git clone需要输入项目的gitlab用户名和密码

$ git clone http://192.168.223.201/cnskylee/mytestproj.git
Cloning into 'mytestproj'...
warning: You appear to have cloned an empty repository.

cnskylee@cnskylee-PC MINGW64 /
$ cd mytestproj

cnskylee@cnskylee-PC MINGW64 /mytestproj (master)
$ git switch -c main
Switched to a new branch 'main'

cnskylee@cnskylee-PC MINGW64 /mytestproj (main)
$ touch README.md

cnskylee@cnskylee-PC MINGW64 /mytestproj (main)
$ git add README.md

cnskylee@cnskylee-PC MINGW64 /mytestproj (main)
$ git commit -m "add README"
[main (root-commit) 3ebffea] add README
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

cnskylee@cnskylee-PC MINGW64 /mytestproj (main)
$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 223 bytes | 74.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To http://192.168.223.201/cnskylee/mytestproj.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

cnskylee@cnskylee-PC MINGW64 /mytestproj (main)
$

        这时可以发现我们提交的文件已经可以在gitlab上的myTestProj目录中展现了,而且分支是main。           

# 参考
1、https://docs.gitlab.com/omnibus/installation/
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值