最近想要系统的学习一下基础设施方面的知识,所以准备搭建一个学习环境,我没有多余的机器使用,只有一个MacBook Pro 2021
,所以选择在笔记本上使用 Docker 搭建一套环境,目前看来第一步还是顺利的。
安装 GitLab
Mac 的M1芯片使用的是ARM架构,所以我们去寻找 ARM架构的镜像, 我是用的是yrzr/gitlab-ce-arm64v8:latest
首先需要创建 gitlab-ce 的三个工作目录 etc、 log、 opt ,不然会报错 。
将volumes
里面的配置修改成你的工作目录就可以了。这里暴露了两个端口9922、9980 因为是在本地使用,所以就没开放https的443 端口,后面也不准备使用https。
docker-compose.yaml
|
|
这里需要注意的是,我们对外暴露的端口是9980,因为我们后面会配置 gitlab 的http 端口运行在9980 而不是 默认的80 ,这样做,是为了避免这个问题:
https://stackoverflow.com/questions/66961517/gitlab-http-clone-url-is-wrong-port-8022-missing
等待docker 被拉起来,然后进入gitlab-ce 里面修改 配置 /etc/gitlab/gitlab.rb
|
|
在最后添加三行,保存退出。
|
|
然后修改默认密码
|
|
最后在执行reload 操作,然后重启
|
|
稍等片刻。
然后 浏览器输入127.0.0.1:9980
就可以打开gitlab-ce了,默认的root 账号密码就是我们刚刚修改的密码。
添加ssh
跟使用GitHub一样,我们先创建一个ssh 密钥对, 然后将公钥添加到 GitLab里面。在本地 ~/.ssh/config 里面添加配置
|
|
测试一下
|
|
ssh 是没有问题的。
尝试新建一个项目
创建成功,在本地将代码拉下来。
|
|
ssh 推送也是没有问题的
|
|
Gitlab Runners 配置
在setting -> CI/CD -> Runners 点击 …,然后 根据 ‘Show runner installation and registration instructions’ 文档 安装 runners
我这里输入的命令是:
|
|
有几个关键点需要注意
- Enter tags for the runner (comma-separated):
- GitLab是用 tag来管理runner 的,最好是一个runner做一件事情,用tag 标记,写
.gitlab.ci.yml
的时候需要指定tags
- GitLab是用 tag来管理runner 的,最好是一个runner做一件事情,用tag 标记,写
- Enter an executor
- executor 有很多种,我这里为了演示,选择了shell
更多关于GitLab Runner 的 的介绍可以参考官网的文章,这里就不做展开。
安装好了就可以在 http://127.0.0.1:9980/admin/runners
看到效果了
最后,在 刚才创建的工程中,添加一个 .gitlab-ci.yml 测试一下。
|
|
将代码推送到gitlab,很快就能编译完了 http://127.0.0.1:9980/root/hello-world/-/pipelines
然后在 http://127.0.0.1:9980/root/hello-world/-/artifacts 可以找到 构建的产物。
至此,在本地搭建GitLab环境已经弄好,下一篇文章,在折腾在本地搭建k8s 集群,然后从GitLab自动打包成docker镜像推送到 k8s 集群,完成一个CI/CD的完整流水线。