开源推动社会进步,不过商场如战场,目前大部分商业策略中,企业产品源代码一般不太合适直接开源,产品代码大都不是很合适直接放GitHub、GitEE上,企业常规做法是搭建局域网仓库,还能提高传输速度,其中GitLab是个不错的选择!
本文讲解GitLab采用容器化的安装方法及三种主要应用场景。
一、GitLab安装配置
Docker环境规划及安装
Docker的搭建可以参考之前的【运维脚手架】相关文档,这里不赘述。
服务器规划:
- 我们先准备一台服务器,可以是虚拟机,使用centos7 64位最新版
- 服务器挂载一块独立大硬盘,路径是
/usr/local/docker/
,条件允许可以挂在网络安全存储,用于数据卷挂载,后续做容器漂移、重装升级都可以妥善保护数据。
容器安装:
采用Docker-compose安装,以下代码,复制到ssh终端执行即可,下文配置如下:
- 容器的数据卷、配置信息统一挂docker下的专属目录,其他应用类似
- compose脚本中指定了镜像、容器的运行端口及数据卷信息
- compose脚本可随时修改配置信息,下方脚本提供了日常使用脚本
mkdir -p /usr/local/docker/gitlab_docker
cd /usr/local/docker/gitlab_docker
tee docker-compose.yml <<-'EOF'
version: '3.1'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.20.151:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:2224'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
EOF
docker-compose up -d
docker-compose logs -f
docker exec -it gitlab bash
GitLab简单配置
- root初始密码修改
初始密码一般是非人类可记忆的,通过shell查询初始密码,在网站中进行修改
# 登录页面修改默认密码
docker exec -it gitlab cat /etc/gitlab/initial_root_password
- 添加团队成员用户
站点支持用户自注册管理员审批、管理员手工开通并邮件告知两种操作,推荐前者!
二、代码管理之Idea集成GitLab
版本管理最频繁的就是代码的维护了,目前java最主流的就是idea了,关于idea的使用可以查询作者其他相关文档。
集成使用有个通用流程,不然容易掉坑里这边叨叨两句:
- 先在gitlab上创建项目,配置好相关人员读写权限;
- idea中创建项目,初始化git本地仓库管理。
- idea中对项目测试ok,连接远程gitlab仓库,推送代码。
- 团队成员首次使用,直接拉取gitlab远程代码,然后协同开发即可
开始水代码啦~
-
步骤一: gitlab上创建项目,设为public,默认不创建readme,省去冲突合并的麻烦
-
步骤二: idea端本地代码管理
# idea控制台执行gitlab的声明账号信息
git config --global user.name "linzh"
git config --global user.email "linzhihui@hotmail.com"
idea对工程初始化git本地仓
idea将项目提交本地仓管理
- 步骤三: idea将项目推到gitlab上
点击origin设置远端git地址
输入gitlab的账号密码
- 步骤四: gitlab上检查代码正确提交上来了!
注:团队其他成员端拉取代码,同github操作,点击上方clone按钮,拷贝http地址即可
三、桌面文档处理之TortoiseGit集成GitLab
处理文档的版本管理和协同编制,桌面端工具有官方的git-scm,不过作为svn的乌龟老用户,还是习惯同家族的TortoiseGit,还是熟悉的味道、熟悉的配方!
使用方面,免费下载,一路next到底,找个盘大活好的文件夹右键clone我们的项目即可,不是很复杂,一切操作都有可以在右键中找到答案,日常可能会碰到以下需求:
- 首次使用或需要更改本地用户名和邮箱的
- 同步冲突需要清理本地缓存
- 需要查看文档被误删或历史版本等等
都可以在这里找到,不过太古早的版本可能会被服务器清理掉,还是及时更新、及时处理吧,这是个好习惯
四、服务端代码集成之Jenkins集成GitLab
微服务里面的快速集成
主要讲的就是这里啦,常见代码合并到主干、打上特别TAG,Jenkins就自动将最新代码拉取下来,发布到指定环境,一般是先发送到测试环境,有点类似流水线操作,具体操作我们将在Jenkins或微服务篇章中详细讲解,这里描述集成GitLab的操作部分。
- 新建item
-
添加测试任务名称,选择自由格式
-
添加git仓库
一般拉取代码是不需要用户认证的,如果有权限控制,在上图的Credentials进行添加 -
保存后查看控制台日志
-
根据日志路径查看代码生成
写在最后
目前Gitee规则升级、GitHub被微软收购,之前还爆出大新闻,有个好工具不容易,很多东西还是掌握在自控范围内,比较稳定可靠;另外Docker管理常用工具真的是超级方便,后续将持续输出类似产品给有需要的朋友!
与您的互动是我持续创作的动力!【一键三连是人类进步的阶梯!】