【CI/CD】docker部署gitlab,并且本地拉取gitlab代码成功
下载gitlab镜像
docker search gitlab
安装截图中圈出来的这个。
docker pull gitlab/gitlab-ce
安装成功后查看镜像。
PS:我使用上述镜像启动容器后,服务器内存一直在增大(本机只有2核4G),网上查了很多方案最终没有解决。后来使用了1个个人提供的镜像,进行后面的流程。
将镜像启动为容器
docker run -d \ -p 8443:443 \ -p 8084:80 \ --name gitlab \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce
访问gitlab
使用服务器的IP+端口,即可访问gitlab。
在上述登录界面,输入root账号用户名密码,即可管理员登录。
但我们一般重新注册个自己的账号,使用自己注册的账号进行使用。
新建群组/项目
使用自己注册的账号登录后,新建群组
新建项目
新建项目成功后,查看到其git地址为一串乱码,用户无法直接访问使用。
解决git项目地址非IP问题
目前要解决git项目地址为乱码,而非IP地址的问题。由于我们使用的docker部署,因此我们进入容器里面,修改/etc/gitlab/gitlab.rb
external_url配置项增加IP地址和端口配置(这里的端口是80,即容器里面的地址,而不是宿主机外面的8084,因此external_url中的端口80也可以不写)
在容器里面重新加载配置
gitlab-ctl reconfigure
重启服务
gitlab-ctl restarth
好,修改完毕!
刷新页面,重新进入gitlab中,观察项目的git地址。可以看出,这个配置确实修改了项目的git地址。
个人PC生成密钥并配置到git账号
由于个人PC访问gitlab如果不设置ssh密钥的话,还要输入用户名密码比较麻烦,因此需要先在个人PC上设置公钥、私钥,并将公钥配置到用户gitlab账号的SSH密钥中。
本地打开git bash,使用命令生成公钥、私钥。
ssh-keygen -t rsa -C 'xxx@xxx.com'
然后一路回车(-C 参数是你的邮箱地址)
然后打开公钥,复制一下(公钥的路径在生成的时候有打印)
这里顺便看下生成的文件和位置
将上述id_rsa.pub中的内容,复制到个人资料设置-SSH密钥-增加密钥中。
拉取项目
1、在本地电脑新建1个文件夹,用于放后面拉取的项目
2、进入该文件夹,邮件Git Bash Here
3、设置用户名、邮箱(你的git账号注册时的用户名邮箱)
git config --global user.name "你的名字" git config --global user.email "你的邮箱"
4、克隆项目
git clone 项目地址
但是此时我们拿这个地址去clone项目,并不会成功,还会触发输入密码。
此时还需要进行一些设置
a、在/etc/gitlab/gitlab.rb中增加gitlab_ssh_host和gitlab_shell_ssh_port。注意这里的222,为宿主机的端口。对应
PS:在上述使用222端口的过程中,本人还遇到了新问题。即一开始启动镜像时,我并没有将22端口映射出去。这里参考了这篇文章完成了已启动容器后,增加映射端口的操作。
https://blog.csdn.net/qq_41538097/article/details/107078157
b、使用命令重新加载gitlab配置及重启gitlab-ctl reconfigure、gitlab-ctl restart。重启后,再查看gitlab网站上项目地址的变化。
SSH地址已增加了刚刚配置的222端口。
HTTP地址并没有变化,因为没有设置。
c、确保服务器对外放开了222端口。
d、重新使用最新的,带上222端口的项目地址进行更新,更新成功。
复制成功,查看文件夹下也有项目上的内容。
5、提交代码到gitlab
上述调试后,从gitlab拉取已调通。下面我们进一步测试下,本地上传到gitlab。
我们在本地新增1个文件夹、1个文件。
在项目文件夹下右键点击->Git Bash Here,输入
git status
标红的为其识别需要提交的文件。
提交代码,输入。
git add test/gitpushtest.txt
(“git add“后加“.”则添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )
然后输入以下命令提交并添加提交信息
git commit -m "message"
最后输出以下命令提交到gitlab该项目的master分支
git push origin master
提交完成。去gitlab项目网站上查看,提交成功。