WSL子系统通过docker安装gitlab私服,支持gitlab私服仓库转移到gitee外网仓库(保留提交记录)

您所在的位置:网站首页 docker搭建gitlab服务器 WSL子系统通过docker安装gitlab私服,支持gitlab私服仓库转移到gitee外网仓库(保留提交记录)

WSL子系统通过docker安装gitlab私服,支持gitlab私服仓库转移到gitee外网仓库(保留提交记录)

2023-09-13 06:21| 来源: 网络整理| 查看: 265

WSL子系统通过docker安装gitlab私服,支持gitlab私服仓库转移到gitee外网仓库(保留提交记录) 环境

win10下的WSL子系统,子系统版本号:Ubuntu 20.04

docker版本:19.03.12,且设置了阿里云镜像加速

gitlab版本:gitlab-ce:11.0.1-ce.0

WSL子系统防火墙已关闭

下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 创建挂载目录

创建gitlab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

mkdir -p /mnt/gitlab/etc mkdir -p /mnt/gitlab/log mkdir -p /mnt/gitlab/data 运行gitlab容器 docker run \ --detach \ --publish 8443:443 \ --publish 8090:80 \ --publish 4222:22 \ --name gitlab \ --restart unless-stopped \ -v /mnt/gitlab/etc:/etc/gitlab \ -v /mnt/gitlab/log:/var/log/gitlab \ -v /mnt/gitlab/data:/var/opt/gitlab \ beginor/gitlab-ce:11.0.1-ce.0

新建gitlab挂载目录时,挂载目录都是空文件夹,运行gitlab容器后,挂载目录下就有了对应文件。此时需要停止gitlab容器,然后删除gitlab容器。

修改gitlab配置

修改/mnt/gitlab/etc/gitlab.rb,把external_url改成部署机器的域名或者IP地址,搭建maven私服的时候也讲过,WSL子系统不能用ip,只能用localhost,所以命令如下:

vi /mnt/gitlab/etc/gitlab.rb external_url 'http://localhost' #这里还一个问题,external_url不能带上端口,不知道是不是WSL子系统问题 #进而导致通过http地址克隆项目时,地址上也少了端口,需要自己补上,或者用浏览器地址栏的地址末尾加上.git

修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml,搜索关键字"Web server settings",将host值改成映射的外部主机ip地址和端口,这里的配置会显示在gitlab仓库克隆地址。端口改了其实也没用,每次启动容器会自动变成80,不过完全不影响web访问以及代码下载提交等。 在这里插入图片描述

至此配置就修改完成了,重启docker(sudo service docker restart),然后重新运行gitlab容器,容器启动成功后gitlab的web管理页面就可以访问了。浏览器输入http://localhost:8090/,第一次访问,根据系统提示重新设置root账户密码即可。

gitlab创建项目

在这里插入图片描述

项目创建完成后,可以根据如下提示,克隆项目或者关联本地项目到远程仓库

命令行指令 Git 全局设置 git config --global user.name "Administrator" git config --global user.email "[email protected]" 创建新版本库 git clone git@localhost:4222/root/test.git cd test touch README.md git add README.md git commit -m "add README" git push -u origin master 已存在的文件夹 cd existing_folder git init git remote add origin git@localhost:4222/root/test.git git add . git commit -m "Initial commit" git push -u origin master 已存在的 Git 版本库 cd existing_repo git remote rename origin old-origin git remote add origin git@localhost:4222/root/test.git git push -u origin --all git push -u origin --tags gitlab配置ssh密钥

克隆git仓库除了通过http方式,还可以通过ssh方式,而且ssh的方式只需要一次配置,就可以省去每次提交代码都要输入用户名密码的操作。

安装git-bash,后续所有操作都是在git-bash进行的

检查本地密钥

cd ~/.ssh ll #如果目录下有id_rsa和id_rsa.pub文件,则可以跳过生成密钥信息步骤 生成密钥信息 ssh-keygen -t rsa -C "[email protected]" #一路Enter就行 gitlab添加密钥 cd ~/.ssh cat id_rsa.pub #把公钥复制到剪切板

用浏览器打开gitlab页面,登录,然后点击用户头像,点击Settings,在左侧菜单栏点击SSH密钥,可以看到如下页面,此时把剪切板内容粘贴到输入框,然后点击增加密钥即可。 在这里插入图片描述

ssh克隆一个项目

随便切一个目录,然后输入 git clone ssh://git@localhost:4222/root/test.git进行克隆,第一次操作需要输入yes确认建立连接,之后再克隆新的项目都可以直接操作了。

gitlab私服项目迁移到gitee等公网仓库

有时候我们需要把公网项目迁移到自己的gitlab服务器,或者把自己gitlab仓库中的项目迁移到gitee等公网进行开源,但是如果只上传代码的话,代码是没有灵魂的,所以迁移的时候要把提交记录一并迁移,具体操作如下:

从原地址克隆一份裸版本库 #先切到一个空目录,所有操作通过git-bash完成 git clone --bare http://localhost:8090/root/test.git 在新的git服务器创建一个新项目以镜像推送的方式上传代码到新项目中 cd test.git git push --mirror gitee新仓库地址

至此项目就完成了迁移,从新仓库地址git clone项目即可。

项目迁移成功之后,其实不用git clone,直接在旧的项目终端输入一条命令,就能把本地代码的远程仓库切换到新仓库地址。

git remote set-url origin gitee新仓库地址


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3