温馨提示×

centos gitlab容器化实践

小樊
49
2025-05-27 01:32:29
栏目: 智能运维

在CentOS上进行GitLab的容器化部署是一个相对简单且高效的方法,可以快速搭建和管理GitLab实例。以下是详细的步骤:

准备工作

  1. 安装Docker
  • 确保你的CentOS系统上已经安装了Docker。如果没有安装,可以参考Docker官方文档进行安装。
  1. 拉取GitLab镜像
  • 使用以下命令从Docker Hub拉取最新的GitLab社区版镜像:
    docker pull gitlab/gitlab-ce:latest
    
    如果你在中国大陆地区,可能需要使用镜像加速服务,例如使用docker-mirror.aigc2d.com提供的镜像源。

部署步骤

  1. 创建数据存储目录
  • 在宿主机上创建用于存储GitLab数据的目录:
    sudo mkdir -p /data/gitlab/{config,logs,data}
    
  1. 运行GitLab容器
  • 使用以下命令创建并启动GitLab容器,并映射所需的端口和存储卷:
    docker run -d \
      --hostname gitlab.example.com \
      -p 443:443 \
      -p 80:80 \
      -p 22:22 \
      --name gitlab \
      --restart always \
      -v /data/gitlab/config:/etc/gitlab \
      -v /data/gitlab/logs:/var/log/gitlab \
      -v /data/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
    
    解释:
    • --hostname:指定容器中绑定的域名或IP地址。
    • -p:端口映射,将宿主机的端口映射到容器的端口。
    • --name:指定容器的名称。
    • --restart always:容器退出后自动重启。
    • -v:挂载目录,将宿主机的目录映射到容器的对应目录。
  1. 初始化GitLab设置
  • 容器启动后,GitLab会开始初始化过程。首次访问时,需要设置管理员账户密码。可以通过以下命令查看初始密码:
    cat /data/gitlab/initial_root_password
    
  • 在浏览器中输入服务器的IP地址或域名,使用root账户和生成的初始密码登录,然后进行必要的配置,如设置外部URL、配置SMTP邮件服务等。

高级配置

  1. 配置HTTPS
  • 为了安全起见,可以为GitLab实例配置HTTPS。需要获取SSL/TLS证书并修改GitLab的配置文件来启用加密连接。
  1. 配置邮件服务
  • 配置SMTP服务器以发送电子邮件通知:
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.example.com"
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "your_email@example.com"
    gitlab_rails['smtp_password'] = "your_password"
    gitlab_rails['smtp_domain'] = "example.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false
    gitlab_rails['gitlab_email_from'] = 'your_email@example.com'
    

备份与恢复

  • 使用以下命令进行数据备份:
    docker exec gitlab gitlab-rake gitlab:backup:create
    
  • 在需要恢复时,可以停止并删除当前容器,然后重新创建并启动容器,GitLab会自动读取配置。

参考资料

通过以上步骤,你可以在CentOS上成功进行GitLab的容器化部署,享受容器化带来的便捷和高效。如果有更多高级需求,可以参考GitLab官方文档进行进一步配置和优化。

0