Gitlab搭建以及本地环境与GitHub共存

一、概述

在工作中,很有可能遇到以下情况:

  • 公司的gitlab,和自己的github
  • 公司的gitlab关联到自己的github,由于公司项目管理需要搭建自己的gitlab(搭建于公司的云服务器)【注:一个工程中涉及多个项目,不花钱github无法建组而造成项目结构混乱】
  • 自己的电脑需要同时管理gitlab和github不同平台的代码,需要一台电脑上配置两个SSH,以方便自己在工作和个人空间上的快速切换,提高效率。

二、搭建gitlab环境

2.1、gitlab官网参考链接

https://about.gitlab.com/install/

docker安装

2.2、基于Docker Engine的安装

2.2.1、准备阶段

gitlab的搭建环境:linux
已经安装了Docker Engine,未安装的执行命令:

sudo yum install docker -y

环境变量配置:

export GITLAB_HOME=/srv/gitlab
2.2.2、搭建gitlab

a、执行命令

sudo docker run --detach \
  --hostname emr.vclobby.com \
  --publish 443:443 --publish 80:80 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest

参数说明

参数说明
hostname访问的地址
publishdocker端口映射,分号前是外部端口,分号后是docker内端口;80:80,访问网站时不需要加端口,若是修改了80映射就需要加端口号;2222:22,服务器22端口被占用,修改映射端口到2222
namedocker的名字,用于重启、关闭、登录内核等
restart随服务器开机时,一同启动
volume数据卷,映射到服务器本地目录

b、查看log信息,gitlab是docker的–name参数

sudo docker logs -f gitlab

c、密码设置
web端第一次访问gitlab(emr.vclobby.com),若是没有出现root的密码设置;通过以下方式进入内核和数据库设置超级管理员(root)密码

# gitlab是docker的--name参数
sudo docker exec -it gitlab /bin/bash

gitlab-rails console -e production
user = User.where(id: 1).first
user.password ='hhhhhhhhhh'
user.password_confirmation ='hhhhhhhhhh'
user.save!

d、其他参数

# 关闭和删除; gitlab是docker的--name参数
sudo docker stop gitlab
sudo docker rm gitlab

三、gitlab与github共存

a、进入用户下的.ssh文件

cd ~/.ssh

b、生成秘钥文件

ssh-keygen -t rsa -C 'xxx@qqq.com' // GitLab
// Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_gitlab

ssh-keygen -t rsa -C 'www@xxxxx.com' // GitHub
// Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_github

c、上传公共密钥到gitlab和github上
找到id_rsa_gitlab.pub和id_rsa_github.pub 将里面的内容全部复制粘贴到github 和 gitlab 的SSHKEY上

gitlab添加sshkey
在这里插入图片描述
github添加sshkey
在这里插入图片描述
d、ssh-agent添加

ssh-agent -s
ssh-add ~/.ssh/id_rsa_github // 若配置是设置了密码,就输入生成秘钥时设置的密码;否则不需要
ssh-add ~/.ssh/id_rsa_gitlab // 若配置是设置了密码,就输入生成秘钥时设置的密码;否则不需要

e、配置config

vi config

Host github.com // 不动
    HostName ssh.github.com // 不动
    User aaaaa@aaaa.com // 你自己的github邮箱
    PreferredAuthentications publickey // 不动
    IdentityFile ~/.ssh/id_rsa_github // 不动
    Port 443 // 如果ssh -T git@github.com的时候报 ssh: connect to host github.com port 22: Operation timed out就把Port这条加上吧,这个坑坑了我好久!!

Host emr.vclobby.com // 你们公司gitlab的ip地址
    HostName emr.vclobby.com //与Host保持一致
    User bbbbb@bbbbb.com // 你gitlab的邮箱
    IdentityFile ~/.ssh/id_rsa_gitlab // 不动
    Port 2222 // 你们公司gitlab的ip端口

注:配置config时,去掉//后面的注释;Host后面的值必须安装上面填写,便于git命令自动寻找对应的gitlab/github

f、本地git配置
测试

ssh -T git@github.com
ssh -T git@emr.vclobby.com

根据需要配置

git config --list

git config --local user.name 'aa'
git config --local user.email 'aa@ddd.com'

git config --global user.name 'aaww'
git config --global user.email 'aaa@ddd.com'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值