前言
- 此文档主要是在Docker上面安装GitLab,GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
- GitLab依赖项繁琐,为简化安装以及不影响宿主机其他环境,所以安装方式使用Docker,Docker的具体内容可参考 Docker学习点我
- 安装环境为CentOs8,Docker版本为3.2.3。
安装GitLab
-
获取gitlab镜像包,若提示选择地址可任选一个可以成功下载的
docker pull gitlab/gitlab-ce #这里的Community Edition (CE)表示社区标本
-
在本机准备gitlab工作目录
mkdir -p /home/gitlab/config #创建config目录 mkdir -p /home/gitlab/logs #创建logs目录 mkdir -p /home/gitlab/data #创建data目录
-
通过镜像ID启动GitLab容器
docker run --detach \ #detach:指定容器是否后台运行 --hostname 127.0.0.1 \ # hostname:指定主机地址,如果有域名可以指向域名 --publish 7001:443 # 指定容器暴露的端口,左边的端口代表宿主机的端口,右边的是代表容器的端口 --publish 7002:80 --publish 7003:22 \ --name gitlab # 声明容器名称 --restart always \ #总是重启 --volume /home/gitlab/config:/etc/gitlab \ # 指定Docker数据卷 --volume /home/gitlab/logs:/var/log/gitlab \ --volume /home/gitlab/data:/var/opt/gitlab 镜像ID
-
修改gitlab.rb配置文件
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)配置有三个参数如
external_url 'http://宿主机IP或域名' gitlab_rails['gitlab_ssh_host'] = '宿主机IP或域名' gitlab_rails['gitlab_shell_ssh_port'] = 7003
-
进入gitlab容器重启配置服务
docker exec -it gitlab /bin/bash #进去gitlab容器的命令 gitlab-ctl reconfigure #重置gitlab客户端的命令
因为我们更改的配置项为宿主机容器卷内配置项,容器不会立刻生效,所以我们进入容器执行重置命令。
打开GitLab
-
浏览器数据 http://宿主机IP或域名:7002,正常将打开重置root账户密码界面
-
若未出现重置密码界面,直接出现登录页,无论两者出现其一,都恭喜你已经安装成功了
-
修改默认账户密码
docker exec -it gitlab /bin/bash #进去gitlab容器的命令 gitlab-rails console -e production #进入gitlab控制台 user = User.where(id: 1).first #此 user 则表示 root 用户 user.password = 'secret_pass’ #修改密码 user.password_confirmation = ‘secret_pass’ #确认密码 user.save! #保存 exit #退出
-
重新登录
总结
- 以上内容为Docker安装gitlab全过程,写这篇博客主要也是为了记录一下安装过程,安装时参考了很多博客,所幸没遇到什么棘手的问题。
- 没了