国内docker镜像安装gitlab 腾讯云cvm版

在腾讯云CVM上部署最新版GitLab 18

1. 背景

时间 :2025年11月17日
环境 :腾讯云CVM
核心问题

  • 直接拉取 gitlab/gitlab-ce:latest 失败,国外镜像访问困难
  • 网上很多所谓的"国内镜像"版本陈旧(甚至遇到9年前的版本伪装成latest)
  • 需要稳定、可靠的企业级代码托管和CI/CD平台

解决方案:发现腾讯云官方镜像仓库提供了同步更新的GitLab镜像

2. 安装过程记录

2.1 准备工作
bash 复制代码
# 创建目录结构
mkdir -p /home/docker/gitlab/{config,logs,data}
chmod 777 -R /home/docker/gitlab/*
2.2 拉取镜像
bash 复制代码
# 使用腾讯云官方镜像 18版本
docker pull mirror.ccs.tencentyun.com/gitlab/gitlab-ce:latest
2.3 启动容器-记得替换你的内网IP
bash 复制代码
docker run -d \
  --hostname 内网IP \
  -p 8008:80 -p 8443:443 -p 8222:22 \
  --name gitlab \
  --restart=always \
  -v /home/docker/gitlab/config:/etc/gitlab \
  -v /home/docker/gitlab/logs:/var/log/gitlab \
  -v /home/docker/gitlab/data:/var/opt/gitlab \
  --shm-size 256m \
  mirror.ccs.tencentyun.com/gitlab/gitlab-ce:latest
2.4 验证版本
bash 复制代码
docker exec gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 输出:18.x.x (当前最新稳定版)

3. 初始配置

3.1 获取初始密码

由于新版本不再自动生成密码文件,需要通过控制台重置:

bash 复制代码
docker exec -it gitlab gitlab-rails console -e production

在控制台中执行-至少八位:

ruby 复制代码
user = User.find_by(username: 'root')
user.password = '你的安全密码'
user.password_confirmation = '你的安全密码'  
user.save!
exit
3.2 访问地址

4. 常用维护命令

bash 复制代码
# 服务管理
docker exec gitlab gitlab-ctl restart      # 重启服务
docker exec gitlab gitlab-ctl status       # 查看状态
docker exec gitlab gitlab-ctl reconfigure  # 重载配置

# 数据备份
docker exec gitlab gitlab-backup create    # 创建备份

# 日志查看
docker exec gitlab gitlab-ctl tail nginx   # Nginx日志
docker logs -f gitlab                      # 容器日志

5. 生产环境优劣势分析 容器化和linux本机部署

容器化:快速、隔离、易维护,适合大多数场景

Systemd:性能稍好,但运维复杂,升级困难

6. 修改 git clone端口号 (不修改的话 git clone 不会添加 IP:端口)

完整宿主机配置文件 (/home/docker/gitlab/config/gitlab.rb)

ruby 复制代码
# 基础配置
external_url 'http://你的内网IP:8008'
gitlab_rails['gitlab_ssh_host'] = '你的内网IP'
gitlab_rails['gitlab_shell_ssh_port'] = 8222

# 邮箱配置  这些不替换被报错的  可以先注释掉
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@yourcompany.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "yourcompany.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

# 备份配置
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800

# 性能优化
puma['worker_processes'] = 2
sidekiq['max_concurrency'] = 10
nginx['worker_processes'] = 4

# 安全配置
gitlab_rails['gitlab_default_can_create_group'] = false
gitlab_rails['gitlab_username_changing_enabled'] = false

# 容器特定配置
nginx['listen_port'] = 80
nginx['listen_https'] = false

修改之后 备份配置 应用配置 重启容器

bash 复制代码
# 1. 备份原配置
cp /home/docker/gitlab/config/gitlab.rb /home/docker/gitlab/config/gitlab.rb.backup

# 2. 用上面的内容覆盖 /home/docker/gitlab/config/gitlab.rb

# 3. 应用配置
docker exec gitlab gitlab-ctl reconfigure

# 4. 重启服务
docker exec gitlab gitlab-ctl restart

优势:

  • 直接在宿主机编辑,更方便
  • 文件已通过卷映射,容器内实时同步
  • 避免进入容器的麻烦

GitLab 日常运维 备份迁移命令

可以设置定时任务 根据公司需要 这里不过多赘述

关于cronjob 参考另外博文:

https://blog.csdn.net/yuezhilangniao/article/details/105144082?spm=1011.2415.3001.5331

1. 备份命令
bash 复制代码
# 进入容器执行备份(生成带时间戳的备份文件)
docker exec gitlab gitlab-backup create

# 或者直接在宿主机执行
docker exec gitlab gitlab-backup create BACKUP=dump
2. 备份文件位置
bash 复制代码
# 备份文件在容器内路径
/var/opt/gitlab/backups/

# 对应宿主机路径
/home/docker/gitlab/data/backups/
3. 查看备份文件
bash 复制代码
ls -la /home/docker/gitlab/data/backups/
# 输出类似:1701234567_gitlab_backup.tar
4. 迁移恢复命令
bash 复制代码
# 将备份文件复制到新服务器后,在新GitLab容器中执行:
docker exec gitlab gitlab-backup restore BACKUP=备份文件名

# 示例(去掉时间戳和_gitlab_backup.tar):
docker exec gitlab gitlab-backup restore BACKUP=1701234567
5. 完整迁移流程
bash 复制代码
# 1. 原服务器备份
docker exec gitlab gitlab-backup create

# 2. 复制备份文件到新服务器
scp /home/docker/gitlab/data/backups/1701234567_gitlab_backup.tar user@新服务器:/home/docker/gitlab/data/backups/

# 3. 新服务器恢复
docker exec gitlab gitlab-backup restore BACKUP=1701234567

# 4. 重启服务
docker exec gitlab gitlab-ctl restart
6. 重要配置文件备份
bash 复制代码
# 备份关键配置文件
cp /home/docker/gitlab/config/gitlab.rb /home/docker/gitlab/config/gitlab.rb.backup
cp /home/docker/gitlab/config/gitlab-secrets.json /home/docker/gitlab/config/gitlab-secrets.json.backup

注意: 确保新旧服务器 GitLab 版本一致或新服务器版本更高。

相关推荐
这周也會开心3 小时前
docker整理
运维·docker·容器
s***55813 小时前
使用 Docker 部署 RabbitMQ 的详细指南
docker·容器·rabbitmq
天草二十六_简村人4 小时前
docker安装MoneyPrinterTurbo,实现文本转视频的本地私有化部署
后端·docker·ai·容器·ai编程
luod5 小时前
理解Docker思想
docker
小坏讲微服务5 小时前
Docker Compose搭建Git仓库私服上传微服务
分布式·git·docker·微服务·容器·springcloud·springalibaba
KevinAha6 小时前
Docker K8s VM 简介
docker·容器·kubernetes
a***813910 小时前
Node.js 与 Docker 深度整合:轻松部署与管理 Node.js 应用
docker·容器·node.js
ringking12319 小时前
docker源文件配置以及密钥文件
运维·docker·容器
编织幻境的妖19 小时前
Docker和Kubernetes 常用命令
docker·容器·kubernetes