zoukankan      html  css  js  c++  java
  • centos7下安装gitlab

    尝试通过两种方式搭建gitlab,直接安装和docker安装。

    首先是官网的安装方式:https://about.gitlab.com/installation/#centos-7

    然后我们需要安装的是社区版(免费版本)

    参考下面两篇教程、文档:
    GitLab的安装及使用教程
    https://packages.gitlab.com/gitlab/gitlab-ce/install

    1. 首先按官网提示先安装依赖,然后执行下面命令添加yum源,选择gitlab-ce社区版
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
    1. 更新本地yum缓存
    sudo yum makecache
    
    1. 安装gitlab-ce
    sudo yum install -y gitlab-ce
    
    安装成功后会有以下图标:
     
    gitlab安装完成
    1. 启动gitlab:gitlab-ctl start,默认8080端口,设置端口需要修改配置vi /etc/gitlab/gitlab.rbexternal_url设置域名和端口号,没有域名则设置ip
    #GitLab常用命令
    sudo gitlab-ctl start    # 启动所有 gitlab 组件;
    sudo gitlab-ctl stop        # 停止所有 gitlab 组件;
    sudo gitlab-ctl restart        # 重启所有 gitlab 组件;
    sudo gitlab-ctl status        # 查看服务状态;
    sudo gitlab-ctl reconfigure        # 启动服务;
    sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;
    gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
    sudo gitlab-ctl tail        # 查看日志;
    
    1. 输入ip:端口号域名:端口号后访问,如果出现502-Whoops, GitLab is taking too much time to respond,则说明端口被占用,默认是8080端口,第一次访问需要直接修改root密码
       
      端口被占用

      这里修改的external_url会影响到后面创建工程的git远程服务器地址,假如我修改为localhost
      external_url 'http://localhost:8099',则出现下图的情况,最好还是填自己的域名或者直接ip地址。
       
      错误的域名

    每次修改配置文件/etc/gitlab/gitlab.rb后需要gitlab-ctl reconfigure才能生效

    上传代码到gitlab

    1. 到gitlab上随便注册一个账号并登录,然后创建了一个test项目仓库
    2. 本地安装了git,到项目根目录下打开Git Bash,并执行git init创建本地仓库
       
      git init

      创建了之后项目文件夹根目录会出现.git的隐藏文件夹,这个就是我们的本地仓库,需要脱离版本控制的话可以直接删除这个.git文件夹
    3. 接下来可以尝试创建一个文件touch text.txt并写入hello world,然后执行git add添加到暂存区,进而git commit到本地版本库(这里可以发现在windows下使用的git bash跟linux下命令一样)
       
      提交代码到本地仓库
    4. 然后需要提交到gitlab远程仓库,首先复制git项目地址
       
      gitlab上获取地址

      然后git remote add命令添加我们的gitlab远程仓库
       
      远程仓库地址
    5. 然后尝试git push提交代码,这里弹出框要求输入用户名和密码,输入之后就可以提交成功,然后到gitlab上也可以看到提交记录
       
      http方式需要用户名密码
    6. 上面是通过http方式提交,一般需要配置SSH Keys使用ssh方式,使用ssh-keygen生成密钥文件id_rsa.pub(在c盘-》用户-》用户名-》.ssh目录下)
    #使用ssh-keygen生成密钥文件id_rsa.pub
    ssh-keygen -t rsa -C "youremail@example.com"
    #获取密钥
    cat ~/.ssh/id_rsa.pub
    

    7.将密钥全部复制粘贴到gitlab下的settings->ssh keys中即可配置成功,然后就可以到gitlab项目中选择ssh地址

     
    ssh方式地址

    8.删除旧的远程仓库地址,并配置新的ssh方式的地址即可
     
    修改远程仓库地址

    9.还有个强制提交的问题,假如我们的远程仓库已经存在文件,那么可以先pull合并到本地仓库才能提交,或者是加-f参数强制提交,但是gitlab会报错
     
    强制提交报错

    强制提交需要放开限制,选择unprotect
     
    放开限制

    Docker安装gitlab

    1. 根据官网的docker安装方式我们找到docker获取giblab-ce镜像的命令
    docker pull gitlab/gitlab-ce
    
     
    gitlab-ce镜像
    1. 直接docker run创建和启动容器,然后直接访问ip:端口号就可以打开了gitlab页面了
    docker run -d -p 8078:80 --name mygitlab gitlab/gitlab-ce
    

    容器80端口映射到宿主机8078端口,dockerfile上也可以看到容器是80端口EXPOSE 443 80 22

     
    docker运行gitlab
    1. 可以加-v指定数据卷,宿主机上可以方便修改配置文件
    cd ~
    #可以考虑把配置文件放到一个文件夹里边统一管理
    mkdir gitlab
    cd ~/gitlab
    #启动gitlab容器后,拷贝容器中的默认配置文件到当前文件夹
    docker container cp mygitlab:/etc/gitlab . && mv gitlab config
    docker container cp mygitlab:/var/opt/gitlab . && mv gitlab data
    docker container cp mygitlab:/var/log/gitlab . && mv gitlab logs
    #先删除旧的容器
    docker rm mygitlab
    #创建新的容器,指定使用当前目录下的配置目录作为数据卷
    docker run -d -p 8078:80 --name mygitlab 
    -v $PWD/config:/etc/gitlab 
    -v $PWD/data:/var/opt/gitlab 
    -v $PWD/logs:/var/log/gitlab 
    gitlab/gitlab-ce
    

    但是启动后报错:

     
    添加数据卷后启动报错

    并且在下方发现,可能由于权限问题导致容器启动失败时需要去执行的命令
     
    权限问题导致

    在Stack Overflow上也搜索到相关报错问题:
    https://stackoverflow.com/questions/39480989/moving-location-of-dockerized-gitlab-data-volumes
    需要修改权限:根据Stack Overflow上的提示我们需要添加--restart always让容器报错也不会自动关闭,并修改文件权限后重启即可
    #添加--restart always,容器报错后不自动关闭
    docker run -d -p 8078:80 --name mygitlab --restart always 
    -v $PWD/config:/etc/gitlab 
    -v $PWD/data:/var/opt/gitlab 
    -v $PWD/logs:/var/log/gitlab 
    gitlab/gitlab-ce
    #修改文件权限
    docker exec -it mygitlab /bin/bash -c "chown -R git /var/opt/gitlab/gitlab-rails/uploads && find /var/opt/gitlab/gitlab-rails/uploads -type f -exec chmod 0644 {} ; && find /var/opt/gitlab/gitlab-rails/uploads -type d -not -path /var/opt/gitlab/gitlab-rails/uploads -exec chmod 0700 {} ;"
    docker exec -it mygitlab /bin/bash -c 'update-permissions'
    #重启容器
    docker restart mygitlab
    

    gitlab 官方推荐是4g内存,2g内存也可以跑,内存占用比较高。个人使用的话可以用,但没必要。感觉还是github或是开源中国的码云好。




  • 相关阅读:
    用户登录设计 单点登录 记住密码等
    相同类名称但不同包启动报错
    IDEA项目搭建十一——添加拦截器、忽略URL大小写、启动事件
    IDEA项目搭建七——使用Feign简化消费者端操作
    java enum使用方法
    IDEA项目搭建十——使用slf4j和logback进行日志记录
    IDEA项目搭建九——MybatisPlus多数据库实现
    IDEA项目搭建八——使用MybatisPlus简化数据库交互
    IDEA项目搭建六——使用Eureka和Ribbon进行项目服务化
    新建Git仓库并关联远程Gitlab
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/10334148.html
Copyright © 2011-2022 走看看