尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

使用 Docker 部署 GitLab 并分配用户账号 —— 保姆级教程

使用 Docker 部署 GitLab 并分配用户账号 —— 保姆级教程 使用 Docker 部署 GitLab 并分配用户账号 —— 保姆级教程一篇讲透从零开始用 Docker 搭建 GitLab 私有代码仓库并完成用户创建、项目权限分配的完整流程附流程图与架构图 一、文章导览GitLab 是目前最流行的开源 DevOps 平台但官方安装方式较为复杂。使用 Docker 可以一键启动并轻松管理数据持久化、升级和备份。本文涵盖✅ Docker 环境准备✅ GitLab 容器部署含关键配置✅ 首次登录与 root 密码设置✅ 创建普通用户并分配项目权限✅ 完整流程图 架构图Mermaid 格式✅ 常见问题与优化建议 二、前置条件项目要求操作系统LinuxUbuntu 20.04 / CentOS 7Docker版本 ≥ 20.10Docker Compose可选版本 ≥ 2.0推荐使用硬件至少 4GB 内存20GB 可用磁盘空间域名/IP公网或内网可访问的 IP / 域名例如gitlab.example.com 本文使用Docker Compose方式便于维护同时也会给出纯docker run命令。 三、流程总览流程图使用 Mermaid 绘制帮助理解完整操作步骤docker rundocker-compose准备 Docker 环境创建数据持久化目录选择部署方式单容器运行命令编写 docker-compose.yml检查容器状态访问 GitLab Web 界面设置 root 密码登录 root 账号创建普通用户创建项目并分配用户权限验证用户登录与 Git 操作 四、Docker 部署 GitLab4.1 创建数据目录持久化mkdir-p/srv/gitlab/{config,logs,data}chmod-R755/srv/gitlab目录作用/srv/gitlab/configGitLab 配置文件/srv/gitlab/logs日志文件/srv/gitlab/data仓库、数据库等数据4.2 方法一使用 Docker Compose推荐创建docker-compose.ymlversion:3.6services:gitlab:image:gitlab/gitlab-ce:latestcontainer_name:gitlabrestart:alwayshostname:gitlab.example.com# 替换为你的域名或 IPenvironment:GITLAB_OMNIBUS_CONFIG:|external_url http://gitlab.example.com # 与 hostname 保持一致 gitlab_rails[time_zone] Asia/Shanghaiports:-80:80# HTTP-443:443# HTTPS可选-22:22# SSH若主机22被占用可改为主机其他端口如2222:22volumes:-/srv/gitlab/config:/etc/gitlab-/srv/gitlab/logs:/var/log/gitlab-/srv/gitlab/data:/var/opt/gitlabshm_size:256m启动docker-composeup-d4.3 方法二纯docker run命令dockerrun-d\--namegitlab\--restartalways\-p80:80-p22:22\-v/srv/gitlab/config:/etc/gitlab\-v/srv/gitlab/logs:/var/log/gitlab\-v/srv/gitlab/data:/var/opt/gitlab\-eGITLAB_OMNIBUS_CONFIGexternal_url http://gitlab.example.com; gitlab_rails[time_zone]Asia/Shanghai\gitlab/gitlab-ce:latest4.4 检查容器状态dockerps|grepgitlabdockerlogs gitlab-f# 查看启动日志第一次启动需要3~5分钟 五、首次访问与 Root 密码设置打开浏览器访问http://你的服务器IP或配置的域名GitLab 会引导设置 root 密码需至少8位如果未出现设置页面可进入容器手动重置dockerexec-itgitlabbashgitlab-rails console-eproduction userUser.where(id:1).first user.password新密码user.save!exit使用用户名root和你设置的密码登录。 六、创建普通用户并分配项目权限6.1 创建用户管理员操作登录 root 后依次点击Admin Area左侧边栏小扳手图标 →Users→New user填写信息字段示例值Name张三UsernamezhangsanEmailzhangsanexample.comAccess levelRegular普通用户勾选“Send password email”如果配置了邮件服务器或临时生成一个密码。点击Create user。 若未配置 SMTP用户首次登录时可使用“忘记密码”功能重置。6.2 创建项目并分配成员步骤流程创建项目进入项目设置添加用户选择角色保存root 管理员my-project成员管理zhangsanReporter / Developer / Maintainer用户获得访问权限具体操作点击顶部→New project→ 填写项目名称如my-project →Create project进入项目后左侧菜单Settings → MembersInvite member输入用户名zhangsan选择角色建议Developer可推送代码点击Invite6.3 用户登录验证退出 root使用zhangsan登录。应能看到被授权的项目并可执行相应权限的 Git 操作。 七、架构与数据流图UML 部署图以下 Mermaid 图展示了 Docker 容器与宿主机的关系渲染错误:Mermaid 渲染失败: Lexical error on line 6. Unrecognized text. ...1[/srv/gitlab/config] --|映射| G:/etc/git -----------------------^ 八、常见问题与优化问题解决方案启动很慢访问 502内存不足给容器至少 4GB调整shm_size或宿主 swapSSH 端口冲突主机已用 22修改映射端口-p 2222:22并修改gitlab.rb中的gitlab_rails[gitlab_shell_ssh_port] 2222无法发送邮件用户重置密码失败配置 SMTP参考 GitLab SMTP 文档备份与恢复docker exec gitlab gitlab-backup create恢复类似升级 GitLab拉取新镜像后重新创建容器保留 volumes 九、总结本文通过Docker 容器化的方式让你能在 10 分钟内拥有一套完整的 GitLab 服务并学会了使用docker run或docker-compose部署基础配置端口、域名、时区管理员创建普通用户并分配项目权限用流程图和架构图可视化理解全过程下一步你可以尝试配置 HTTPSLet’s Encrypt、集成 CI/CD、配置 LDAP 认证等。 附录快速命令集合# 启动/停止docker-composeup-ddocker-composedown# 进入容器dockerexec-itgitlabbash# 查看实时日志dockerlogs-fgitlab# 重置 root 密码容器内执行gitlab-rails console userUser.find_by_username(root);user.password新密码;user.save!
返回列表