Docker 安装 gitlab-ce,第一次登录未提示修改密码

解决方案如下:

  1. 进入容器
  2. 进入 Gitlab 控制台
  3. 修改/确认密码
  4. 保存退出
$ docker exec -it gitlab /bin/bash
root@66ef80d52eff:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
 GitLab:       14.6.1 (661d663ab2b) FOSS
 GitLab Shell: 13.22.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='123456'
=> "123456"
irb(main):003:0> user.password_confirmation='123456'
=> "123456"
irb(main):004:0> user.save!
=> true
irb(main):005:0> exit
root@66ef80d52eff:/# exit
exit

CI-持续集成

  • 确定 runner 机器上有相应的构建工具(git、node、npm 等)
  • 确定代码仓库与 runner 之间网络是通的

CD-持续部署

  1. 确认部署服务器,待部署目录属主与 rsync 相同(rsync 部署有点不高明)

rsync 安装与启动

  1. 安装
$ sudo apt install rsync
$ sudo systemctl start rsyncd.service
  1. 修改配置
uid = zaifeng
gid = zaifeng
use chroot = no
max connections = 200
timeout = 300

motd file = /var/rsyncd/rsync.motd
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

[cmsweb]
path=/data/www/mscms/
read only = false
ignore errors
comment = anyone can access
  1. 启动服务
$ sudo systemctl start rsyncd.service
  1. 创建免密用户(可用于登录和 rsync 文件传输)
$ ssh-keygen -t rsa -C "here is a comment"
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@x.x.x.x
  1. 检查及测试
# 查看是否已经添加了对应主机的密钥
$ ssh-keygen -F x.x.x.x

$ ssh user@x.x.x.x
  1. 删除主机密钥(取消时备用)
使用-R选项,也可以在~/.ssh/known_hosts文件中手动删除

$ ssh-keygen -R 222.24.51.147

知识点:

  • AccessToken 用法
$ git clone https://oauth2:$ACCESS_TOKEN@github.com/user/repository

ACCESS_TOKEN 改成自己的,若在 gitlab-runner 中使用,可在 runner 设置中增加『保护变量』

  • gitlab-runner 各命令参数