13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

我们一起聊聊丝滑的代码管理

你好,我是悟空。

成都创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站制作、成都网站建设, 我们的网页设计师为您提供的解决方案。

本文主要内容如下:

图片

一、背景

最近需要修改一个很重要的项目源码,但是这个源码的代码仓库权限又不能给我们,只给了一份拷贝的版本,为了能够更好地对这份代码进行代码版本管理,我决定在本地搭建一个 Gitlab 仓库,来和其他同事进行协同开发。

二、环境依赖

1、本地部署一台 Ubuntu 虚拟机

2、Ubuntu Docker 环境

3、能否访问 docker hub 网络(如果不能访问,用离线方式安装 Gitlab 也可以)

三、部署 Gitlab

3.1 采用 docker compose 方式启动 Gitlab 容器

(如果你不喜欢用 docker compose 方式,也可以直接用 docker run 的方式启动 Gitlab 容器。)

3.1.1 拉取 Gitlab 镜像

docker pull gitlab/gitlab-ee:latest

3.1.2 编写 docker-compose.yml 文件

创建一个 docker-compose.yml 文件:

vim docker-compose.yml

内容如下:

version: '3.3'
    services:
      web:
        image: 'gitlab/gitlab-ee:latest'
        restart: always
        hostname: 'gitlab.example.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'https://gitlab.example.com'
        ports:
          - '8000:80'
          - '8443:443'
          - '2222:22'
        volumes:
          - '/home/wukong/gitlab/config:/etc/gitlab'
          - '/home/wukong/gitlab/logs:/var/log/gitlab'
          - '/home/wukong/gitlab/data:/var/opt/gitlab'
        shm_size: '256m'

配置说明:

还需要在 Ubuntu 上创建一些文件夹:

3.1.3 启动容器

在文件 docker-compose.yml 的所在的目录下执行以下命令启动 Gitlab 容器并查看容器状态:

docker-compose up -d
docker ps

图片

等几分钟后,容器状态会从 starting 状态变为 healthy 状态。

更多配置和部署方式详见官网文档:

https://docs.gitlab.com/ee/install/docker.html

3.2 访问 Gitlab

可以通过 Ubuntu 虚拟机的 IP 的方式来访问 Gitlab 网站,也可以通过域名的方式来访问Gitlab 网站。

用浏览器打开 Gitlab 网站打开后如下所示:

图片

3.2.1 通过 IP 访问

浏览器直接打开如下地址:

https://<虚拟机 IP 地址>:8443/

3.2.2 通过域名访问

host 配置:

<虚拟机 IP 地址> gitlab.example.com

浏览器打开如下地址:

https://gitlab.example.com:8443/

3.3 修改 root 密码

打开 Gitlab 网站后,就会让你登录,即使你选择注册,也需要等管理员审批通过才能登录。所以我们首先得用管理员账号登录,但是我们是不知道账号密码的,所以需要先修改管理员的密码。

sudo docker ps
sudo docker exec -it <容器 ID>  /bin/bash

cd /opt/gitlab/bin
gitlab-rails console

图片

u=User.where(id:1).first

因为 root 用户的 id 是默认用户,所以 id 为 1。

图片

u.password='passjava'
u.password\_cnotallow='passjava'

图片

输入u.save,然后回车,等到输出 true,这时,密码修改成功。

u.save

图片

密码修改成功后,退出容器,然后回到登录页面,输入用户名和密码即可登录管理员账号。用户名:root,密码:passjava。

四、测试 Gitlab 功能

4.1 注册用户

在注册页面填写用户信息,注册成功后需要等待管理员审批。

图片

管理员审批界面

图片

4.2 测试 创建 Group 和 Project

管理员创建 Group

图片

管理员创建的 Project

图片

添加用户到这个仓库里面。

https://gitlab.example.com:8443/test-group/passjava/-/project_members

图片

4.3 添加 SSH Key

用户登录成功后,可以看到自己的 passjava 项目,不过还需要添加 SSH Key 才能 push 或 pull 项目。

图片

如果本地没有 SSH key,则可以参考下面这个链接生成 SSH Key。

https://gitlab.example.com:8443/help/ssh/index#generate-an-ssh-key-pair

4.4 用户 clone 项目

clone 仓库到本地

git clone https://gitlab.example.com:8443/test-group/passjava.git
或
git clone https://192.168.56.12:8443/test-group/passjava.git

提示输入密码,输入用户名和密码:

图片

图片

4.4 提交代码到 Gitlab 仓库

图片

附录:离线安装 Gitlab

docker pull gitlab/gitlab-ee:latest

打包测试环境的 gitlab镜像,这个命令会将服务器上 gitlab 镜像打包成 tar 包,这样我们就方便拷贝到其他服务器上了。执行打包镜像命令:

sudo docker save -o gitlab-ee.tar gitlab/gitlab-ee:latest

因为保存的 tar 包权限不够,所以设置下权限为 777。执行修改权限的的命:

sudo chmod 777 gitlab-ee.tar

将这个 tar 包拷贝新环境的三台服务器上。执行导入镜像的命令:

sudo docker load -i gitlab-ee.tar

然后按照第三章的 3.1.2 和 3.1.3 内容启动容器。

关于我

InfoQ 签约作者、蓝桥签约作者、阿里云专家博主、 红人。


文章名称:我们一起聊聊丝滑的代码管理
链接地址:http://cdbrznjsb.com/article/dhsoise.html

其他资讯

让你的专属顾问为你服务