Gitlab CI/CD的使用【简】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab CI/CD的使用【简】相关的知识,希望对你有一定的参考价值。

参考技术A 1.安装runner
2.注册runner
3.编写流水线脚本

Docker 上安装runner 文档地址: https://docs.gitlab.com/runner/install/docker.html

如果在测试环境下需要指定域名host的可以加参数 --add-host= www.test.com:192.168.1.10 ,省去以后进了容器在手动修改的麻烦。
附:
Linux上直接安装runner

容器启动后,进入到容器,输入命令:

输入gitlab地址, token, 描述, tag, 用什么执行。

token的获取方法(gitlab-->管理中心-->概述-->runner)

添加成功。刷新页面

可进入到容器后免交互来注册:

dev分支创建一个.gitlab-ci.yml的文件,我这里已经创建好了

内容:
stages:内容的3个阶段
为了方便看,任务名我这里写的中文,不过不影响。
stage和 开始的stages里定义的是对应的。
tag: 这里写的是你注册git-runner的tag!!!!
only:只在dev触发的时候才运行。

。。。连着遇到3个问题:
1.出现找不到分支

通过查看日志(gitlab-runner exec docker job_name),发现gitlab在被触发后拉取项目的时候采用的默认http协议的克隆地址,而我的http方式地址没有改过,还是默认容器的名字。 自己测了一下 手动克隆当然也是会失败。
解决方法:修改http:方式克隆地址为可用地址,成功!!

2.可以获取分支了,但是还是失败,如下

解决办法:
修改gitlab配置(设置--CI/CD,将Git strategy修改成git clone)

3.到最后一步部署文件到远程机器,出现没有权限

可以看到我在脚本这个步骤输出一个变量,结果为当前执行用户为gitlab-runner ,我们要做ssh免密通信要在
gitlab-runner这个用户去做。

再次运行,成功。

如何使用 CI/CD 为 Gitlab 注册表推送基于 docker compose 的图像

【中文标题】如何使用 CI/CD 为 Gitlab 注册表推送基于 docker compose 的图像【英文标题】:How can I push docker compose based images for Gitlab Registry Using CI/CD 【发布时间】:2021-11-25 09:53:15 【问题描述】:

我已经使用 docker-compose 链接了 Postgres DB 和 API 图像,它在本地工作,我必须使用 CI/CD 将这两个图像推送到 gitlab 注册表。

enter image description here

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 图片和屏幕截图可以很好地添加到帖子中,但请确保帖子在没有它们的情况下仍然清晰且有用。不要发布代码或错误消息的图像。而是直接将实际代码/消息复制并粘贴或键入到帖子中。 【参考方案1】:

gitlab 文档很好地介绍了如何build and push Docker images during CI。

注意/使用CI_REGISTRY_IMAGE 变量很重要。如果您尝试推送的图片名称与CI_REGISTRY_IMAGE 不同,则推送将失败。如果您想拥有多个图像,您需要在标签中标记它们 ($CI_REGISTRY_IMAGE:db-$CI_COMMIT_REF_SLUG) 或创建一个单独的 repo 并在那里管理图像。

【讨论】:

以上是关于Gitlab CI/CD的使用【简】的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD之搭建私有git仓库gitlab

CI/CD之搭建私有git仓库gitlab

Gitlab CI/CD配置-并发送消息到飞书

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

Gitlab CI/CD git push POMs 所有阶段工作的变化