Ubuntu GitLab常见问题及解决方法
安装GitLab时,若提示缺少curl、openssh-server、ca-certificates、postfix等依赖包,会导致安装失败。解决方法是使用apt命令安装缺失的依赖:
sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix
若安装时出现E: Unable to locate package gitlab-ee(或gitlab-ce)错误,多为Ubuntu版本与GitLab包不兼容或未正确添加GitLab仓库。解决方法:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce -y。修改/etc/gitlab/gitlab.rb中的external_url(如从http://old-ip改为http://new-ip)后,需重新配置GitLab使变更生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
否则会导致无法通过新URL访问GitLab。
sudo systemctl start gitlab-runsvdir启动runsv服务;sudo gitlab-ctl tail;sudo netstat -tulnp | grep :80,修改/etc/gitlab/gitlab.rb中的端口配置后重新配置;sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
GitLab默认管理员账户为root,若忘记密码,可通过服务器命令行重置:
sudo gitlab-rails console
进入控制台后执行:
user = User.find_by(username: 'root')
user.password = '新密码'
user.password_confirmation = '新密码'
user.save!
exit
若推送代码时提示Permission denied (publickey),需检查:
~/.ssh/id_rsa.pub);Settings -> SSH Keys添加);/etc/gitlab/gitlab.rb中修改了SSH端口(需同步修改~/.ssh/config)。.gitlab-ci.yml中添加before_script安装依赖(如npm install、pip install -r requirements.txt);Settings -> CI / CD -> Variables添加,避免硬编码;image字段指定的镜像存在(如image: ruby:3.2)。sudo gitlab-runner status;Settings -> CI / CD -> Runners):sudo gitlab-runner register
sudo systemctl restart gitlab-runner。若/var/opt/gitlab目录占用过高,需清理过期资源:
sudo gitlab-rake gitlab:cleanup:orphan_job_artifacts;docker image prune -a(若使用Docker Registry)。/etc/gitlab/gitlab.rb中修改:unicorn['worker_processes'] = 2  # 根据CPU核心数调整
sidekiq['concurrency'] = 10      # 根据内存调整
redis['maxmemory'] = "1gb"(根据服务器内存调整)。