
丝滑的代码管理
你好,我是悟空。
本文主要内容如下:
一、背景
最近需要修改一个很重要的项目源码,但是这个源码的代码仓库权限又不能给我们,只给了一份拷贝的版本,为了能够更好地对这份代码进行代码版本管理,我决定在本地搭建一个 Gitlab 仓库,来和其他同事进行协同开发。
二、环境依赖
1、本地部署一台 Ubuntu 虚拟机
2、Ubuntu Docker 环境
3、能否访问 docker hub 网络(如果不能访问,用离线方式安装 Gitlab 也可以)
三、部署 Gitlab
3.1 采用 docker compose 方式启动 Gitlab 容器
- 拉取 Gitlab 镜像
- 编写 docker-compose.yml 文件
- 启动 Gitlab 容器
(如果你不喜欢用 docker compose 方式,也可以直接用 docker run 的方式启动 Gitlab 容器。)
3.1.1 拉取 Gitlab 镜像
3.1.2 编写 docker-compose.yml 文件
创建一个 docker-compose.yml 文件:
内容如下:
配置说明:
-
version: '3.3'
:指定了 Docker Compose 文件的版本。 -
services:
:指示接下来定义服务部分的开始。 -
web:
:这是服务的名称,可以自定义。在这个示例中,服务名为 "web"。 -
image: 'gitlab/gitlab-ee:latest'
:指定要使用的 Docker 镜像。在这里,使用了gitlab/gitlab-ee
镜像的最新版本。 -
restart: always
:指定容器的重新启动策略为始终重新启动。 -
hostname: 'gitlab.example.com'
:设置容器的主机名为 "gitlab.example.com"。 -
environment:
:定义容器内的环境变量。 -
GITLAB_OMNIBUS_CONFIG: |
:这是一个环境变量的名称,其值是一个多行字符串,表示 GitLab 配置文件的内容。 -
external_url 'https://gitlab.example.com'
:在 GitLab 配置文件中设置 GitLab 的外部 URL 为 "https://gitlab.example.com"。 -
ports:
:定义容器与主机之间的端口映射关系。 -
'8000:80'
:将容器的 80 端口映射到主机的 8000 端口。 -
'8443:443'
:将容器的 443 端口映射到主机的 8443 端口。 -
'2222:22'
:将容器的 22 端口(SSH)映射到主机的 2222 端口。 -
volumes:
:定义容器内的数据卷挂载关系。 -
'/home/tss/gitlab/config:/etc/gitlab'
:将主机上的/home/tss/gitlab/config
目录挂载到容器内的/etc/gitlab
目录。 -
shm_size: '256m'
:设置容器的共享内存大小为 256MB。
还需要在 Ubuntu 上创建一些文件夹:
- /home/wukong/gitlab/config
- /home/wukong/gitlab/logs
- /home/wukong/gitlab/data
3.1.3 启动容器
在文件 docker-compose.yml 的所在的目录下执行以下命令启动 Gitlab 容器并查看容器状态:
等几分钟后,容器状态会从 starting
状态变为 healthy
状态。
更多配置和部署方式详见官网文档:
3.2 访问 Gitlab
可以通过 Ubuntu 虚拟机的 IP 的方式来访问 Gitlab 网站,也可以通过域名的方式来访问Gitlab 网站。
用浏览器打开 Gitlab 网站打开后如下所示:
3.2.1 通过 IP 访问
浏览器直接打开如下地址:
3.2.2 通过域名访问
host 配置:
浏览器打开如下地址:
3.3 修改 root 密码
打开 Gitlab 网站后,就会让你登录,即使你选择注册,也需要等管理员审批通过才能登录。所以我们首先得用管理员账号登录,但是我们是不知道账号密码的,所以需要先修改管理员的密码。
- 1.查看运行的容器ID
- 2.进入容器
- 3.进入 gitlab的 bin 目录
- 4.执行 gitlab-rails console
- 5.找到 root 的用户
因为 root 用户的 id 是默认用户,所以 id 为 1。
- 6.修改 password
- 7.修改确认密码
- 8.保存修改
输入u.save,然后回车,等到输出 true,这时,密码修改成功。
密码修改成功后,退出容器,然后回到登录页面,输入用户名和密码即可登录管理员账号。用户名:root,密码:passjava。
四、测试 Gitlab 功能
4.1 注册用户
在注册页面填写用户信息,注册成功后需要等待管理员审批。
管理员审批界面
4.2 测试 创建 Group 和 Project
管理员创建 Group
管理员创建的 Project
添加用户到这个仓库里面。
4.3 添加 SSH Key
用户登录成功后,可以看到自己的 passjava 项目,不过还需要添加 SSH Key 才能 push 或 pull 项目。
如果本地没有 SSH key,则可以参考下面这个链接生成 SSH Key。
4.4 用户 clone 项目
clone 仓库到本地
提示输入密码,输入用户名和密码:
4.4 提交代码到 Gitlab 仓库
附录:离线安装 Gitlab
打包测试环境的 gitlab镜像,这个命令会将服务器上 gitlab 镜像打包成 tar 包,这样我们就方便拷贝到其他服务器上了。执行打包镜像命令:
因为保存的 tar 包权限不够,所以设置下权限为 777。执行修改权限的的命:
将这个 tar 包拷贝新环境的三台服务器上。执行导入镜像的命令:
然后按照第三章的 3.1.2 和 3.1.3 内容启动容器。
文章转载自公众号:悟空聊架构
