什么是 GitLab

GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

部署 GitLab

我们使用 Docker 来安装和运行 GitLab 中文版,docker-compose.yml 配置如下:

  1. version: '3'
  2. services:
  3.   web:
  4.    image: 'twang2218/gitlab-ce-zh'
  5.    restart: always
  6.    hostname: '192.168.75.145'
  7.    environment:
  8.      TZ: 'Asia/Shanghai'
  9.      GITLAB_OMNIBUS_CONFIG: |
  10.        external_url 'http://192.168.75.145'
  11.        gitlab_rails['gitlab_shell_ssh_port'] = 2222
  12.        unicorn['port'] = 8888
  13.        nginx['listen_port'] = 80
  14.    ports:
  15.      - '80:80'
  16.      - '443:443'
  17.      - '2222:22'
  18.    volumes:
  19.      - ./config:/etc/gitlab
  20.      - ./data:/var/opt/gitlab
  21.      - ./logs:/var/log/gitlab

配置 GitLab

  • 设置管理员初始密码,这里的密码最好是 字母 + 数字组合,并且大于等于 8 位
  • 配置完成后登录,管理员账号是 root

注意: 如果服务器配置较低,启动运行可能需要较长时间,请耐心等待

设置 GitLab

第一次使用时可以做一些初始化设置,点击 管理区域 -> 设置

  • 关闭头像功能,由于 Gravatar 头像为网络头像,在网络情况不理想时可能导致访问时卡顿

  • 由于是内部代码托管服务器,可以直接关闭注册功能,由管理员统一创建用户即可

账户管理

使用时请不要直接通过 root 用户操作,需要先创建用户,然后通过创建的用户操作,如果你是管理员还需要为其他开发人员分配账户

  • 创建账户,点击 管理区域 -> 新建用户

  • 设置账户信息,同时你可以将自己设置为管理员

  • 修改用户密码,由于我们创建时并没有配置邮箱,所以还需要重新编辑用户信息并手动设置密码

  • 退出并使用新账户登录

注意: 创建完账户,第一次登录时还会提示你修改登录密码

项目管理

  • 点击 + 号 -> 新建项目

  • 输入项目名称及描述信息,设置可见等级为私有,这样别人就看不见你的项目

  • 我们选择通过增加一个 README 的方式来初始化项目

  • 直接提交修改即可

使用 SSH 方式拉取和推送

生成 SSH KEY

  • 使用 ssh-keygen 工具生成,位置在 Git 安装目录下,我的是 C:\Program Files\Git\usr\bin,输入命令:
  1. ssh-keygen -t rsa -C "your_email@example.com"
  • 执行成功后的效果:
  1. Microsoft Windows [版本 10.0.14393]
  2. (c) 2016 Microsoft Corporation。保留所有权利。
  3. C:\Program Files\Git\usr\bin>ssh-keygen -t rsa -C "topsale@vip.qq.com"
  4. Generating public/private rsa key pair.
  5. Enter file in which to save the key (/c/Users/Lusifer/.ssh/id_rsa):
  6. Enter passphrase (empty for no passphrase):
  7. Enter same passphrase again:
  8. Your identification has been saved in /c/Users/Lusifer/.ssh/id_rsa.
  9. Your public key has been saved in /c/Users/Lusifer/.ssh/id_rsa.pub.
  10. The key fingerprint is:
  11. SHA256:cVesJKa5VnQNihQOTotXUAIyphsqjb7Z9lqOji2704E topsale@vip.qq.com
  12. The key's randomart image is:
  13. +---[RSA 2048]----+
  14. | + ..=o=. .+. |
  15. | o o + B .+.o.o |
  16. |o . + +=o+.. |
  17. |.= . oo... |
  18. |= o So |
  19. |oE . o |
  20. | .. .. . |
  21. | o*o+ |
  22. | *B*oo |
  23. +----[SHA256]-----+
  24. C:\Program Files\Git\usr\bin>

复制 SSH-KEY 信息到 GitLab

  • 密钥位置在:C:\Users\你的用户名\.ssh 目录下,找到 id_rsa.pub 并使用编辑器打开,如:

  • 登录 GitLab,点击“用户头像”–>“设置”–>“SSH 密钥”

  • 成功增加密钥后的效果

使用 TortoiseGit

克隆项目

  • 新建一个存放代码仓库的本地文件夹
  • 在文件夹空白处按右键
  • 选择 Git 克隆…

  • 复制项目地址到 URL

  • 如果弹出连接信息请选择是

  • 成功克隆项目到本地

推送项目

  • 创建或修改文件(这里的文件为所有文件,包括:代码、图片等)
  • 我们以创建 .gitignore 过滤配置文件为例,该文件的主要作用为过滤不需要上传的文件,比如:IDE 生成的工程文件、编译后的 class 文件等
  • 在工程目录下,新建 .gitignore 文件,并填入如下配置
  1. target/
  2. !.mvn/wrapper/maven-wrapper.jar
  3. ## STS ##
  4. .apt_generated
  5. .classpath
  6. .factorypath
  7. .project
  8. .settings
  9. .springBeans
  10. ## IntelliJ IDEA ##
  11. .idea
  12. *.iws
  13. *.iml
  14. *.ipr
  15. ## JRebel ##
  16. rebel.xml
  17. ## MAC ##
  18. .DS_Store
  19. ## Other ##
  20. logs/
  21. temp/
  • 右键呼出菜单,选择 提交 Master…

  • 点击 全部 并填入 日志信息

  • 点击 提交并推送

  • 成功后的效果图

查看 GitLab 确认提交成功

3.Docker Compose 部署 GitLab的更多相关文章

  1. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  2. 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务

    场景 最终目的是使用Docker Compose部署一个Gitlab服务. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序 ...

  3. Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  4. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

  5. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  6. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  7. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  8. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  9. Docker Compose部署Nexus3时的docker-compose,yml代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

随机推荐

  1. 031.Python类中的方法

    一 类中的方法 1.1 介绍 (1) 普通方法(2) 绑定方法 绑定到对象 (自动传递对象参数) 绑定到类 (自动传递类参数) (3) 静态方法 (无论类还是对象,都可以调用) class Plane ...

  2. 浏览器中的 .Net Core —— Blazor WebAssembly 初体验

    前言 在两年多以前就听闻 Blazor 框架,是 .Net 之父的业余实验性项目,其目的是探索 .Net 与 WebAssembly 的兼容性和应用前景.现在这个项目已经正式成为 Asp.Net Co ...

  3. HBASE手动触发major_compact

    1.定时执行脚本#!/bin/bash source /etc/profile sh ./hbase shell <<EOF major_compact 'table_name' EOF ...

  4. JS对象的概念、声明方式等及js中的继承与封装

    对象的遍历 对象可以当做数组处理,使用for in var person={}; person.name="cyy"; person.age=25; person.infos=fu ...

  5. 获取域hash并破解

    ntds.dit ntds.dit是主要的AD数据库,存放在C:\Windows\NTDS\NTDS.dit,包括有关域用户,组和组成员身份的信息.它还包括域中所有用户的密码哈希值.为了进一步保护密码 ...

  6. ACM 英文学习系列

    因为ACM题目描述全是英文,所以有必要学习学习相关词汇...内心极为无奈 废话不多说 rooted binary tree 有根二叉树     integers n 英[ˈɪntɪdʒəz] 整数   ...

  7. docker安装mysql/redis

    1.安装mysql容器 #搜索mysql镜像 docker search mysql #拉取mysql镜像 docker pull docker.io/mysql #创建mysql容器,MYSQL_R ...

  8. python-21-生成器又是什么东西?

    前言 生成器,只要含有yield关键字的函数都是生成器函数,但yield不能和return共用且需要写在函数内. 生成器,是返回一个迭代器的函数,说白了生成器也是迭代器. 一.生成器简介 1.只要含有 ...

  9. vue中keepalive怎么理解?​---vue中文社区

    vue中keepalive怎么理解? 说在前面: keep-alive是vue源码中实现的一个组件, 感兴趣的可以研究源码 https://github.com/vuejs/vue/blob/dev/ ...

  10. 使用placeholder属性设置input文本框的提示信息

    input文本框中设置提示信息,可以使用placeholder属性 <!DOCTYPE html> <html> <head> <meta charset=& ...