Docker的CI/CD流水线简单配置(在windous本地配置)
在做配置之前,请先了解一下知识点,更加方便了解下面代码:
1.文件后缀名为.yml
2.gitlab-runner
3.CI/CD
了解完之后就开始本次代码讲解(一定要先进行了解)
首先先要做一些准备工作,方便下面步骤的使用
1.运行docker里的gitlab
2.找到你想应用的项目仓库里去设置弄一个访问令牌
添加一个新令牌
设置令牌的名称,访问权限,时间
创建之后这个令牌token需要暂时保存下来,留着待会会用到,下面代码说到令牌token就是在使用
一、进行安装Docker-runner软件(带注释是为了讲解,最下面有不带注释可以复制)
路径:在C盘创建文件夹名为 GitLab-Runner把文件下载到该目录。
网址:https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe
注册新的getlab-Runner,创建 gitlab-runner.yml文件,将以下代码写入(将我讲解的文字删除掉)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | //注册一个 GitLab Runner。GitLab Runner 是一个用于在 GitLab CI/CD 中执行作业的执行器。 //cd c:\GitLab-Runner 用于切换到 GitLab Runner 的安装目录。而 .\gitlab-runner-windows-amd64.exe register 则是运行 GitLab Runner 注册命令。 cd c:\GitLab-Runner .\gitlab-runner-windows-amd64.exe register ------------------------------------------- Runtime platform [0;m arch[0; =windows pid[0;m=2756 revision[0;m=133d7e76 version[0;m=15.6.1 [0;33m //GitLab 实例的 URL:这里是 http://localhost:8080/abc/abc,表示 GitLab 实例的地址。 Enter the GitLab instance URL ( for example, https: //gitlab.com/): http: //localhost:8080/abc/abc //注册 Token:这里是 glpat-JzSJsWcxMnNaAXaWWaxs,用于验证 Runner 的注册,这里采用上面创建的令牌Token。 Enter the registration token: glpat-JzSJsWcxMnNaWWaxs [runnertest2]runnertest1 shell //输入运行器的标签这个就是注册runner的表签(下面会用到) Enter tags for the runner (comma-separated): shell,runnertest2_shell Enter optional maintenance note for the runner: shell for runnertest2 Registering runner... succeeded [0;m runner[0;m=gghjkkll... Enter an executor: ssh, virtualbox, kubernetes, custom, docker, docker-windows,parallels, instance, docker-ssh, shell, docker+machine, docker-ssh+machine: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [0;m Configuration (with the authentication token) was saved in "C:\\GitLab-Runner\\c onfig.toml"[0;me |
二、把Runner安装成一个服务并启动
在windows启动菜单输入框输入 cmd ,然后不要回车,在菜单最上面把 cmd 设为以管理员身份运行,然后再执行(必须是管理员运行)
1 | 安装并注册 GitLab Runner 为 Windows 服务,以便在系统启动时自动运行,并且能够接收 GitLab 上提交的作业任务并执行 |
1 | gitlab-runner-windows-amd64.exe install |
1 | 启动 GitLab Runner,并开始接收和执行 GitLab 上提交的作业任务 |
1 | gitlab-runner-windows-amd64.exe start |
在 控制台-->系统和安全-->管理工具-->服务 中找到了该服务,看到已经自动把登陆帐号设为本地系统账户并自动启动
三、编写一个运行流水线
创建一个.gitlab-ci.yml文件,写入一下代码(文字注释需要删除)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | stages: //系列的阶段 - build //构建阶段,用于构建项目。 - test //测试阶段,用于运行项目的测试。 - review //审查阶段,用于执行其他检查或审查操作。 - deploy //部署阶段,用于将项目部署到目标环境 //相应的作业 build-job: //在build阶段执行的作业, stage: build //执行build阶段 script: - echo "开始测试runnertest1 shell..." - docker run --rm maven:3-jdk-11-slim mvn -v //使用maven:3-jdk-11-slim镜像 - echo "结束测试runnertest1 shell." tags: //提示信息 - runnertest1_shell //此作业标记为runnertest1_shell test-job: //test阶段执行的作业 stage: test script: - echo "开始测试runnertest1 maven..." - mvn -v //运行mvn -v命令验证Maven版本 - echo "结束测试runnertest1 maven." tags: - runnertest1_maven review-job: stage: review //在review阶段执行的作业 image: maven:3-jdk-11-slim //使用maven:3-jdk-11-slim镜像 script: - echo "开始测试runnertest1 maven..." - java -version //运行java -version命令验证Java版本 - echo "结束测试runnertest1 maven." tags: - docker //此作业标记为docker。 deploy-job: stage: deploy //deploy阶段执行的作业 script: - echo "开始测试windows shell runner..." - java -version //运行java -version命令验证Java版本 - echo "结束测试windows shell runner." tags: //此作业标记为shell,runnertest2_shell shell,runnertest2_shell |
解释:tags这里的runnertest2_shell就是我们之前注册Runner时填写的标签。
.gitlab-ci.yml文件里的工作不是固定的,也是根据项目进行更改,这仅供参考。
保存.gitlab-ci.yml之后,流水线就会立刻运行,以后每次只要仓库有提交,都会触发流水线启动,到此代码编写完毕。
把不带注释的文件代码放在最下面
gitlab-runner.yml 文件里的代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | cd c:\GitLab-Runner .\gitlab-runner-windows-amd64.exe register ------------------------------------------- Runtime platform [0;m arch[0; =windows pid[0;m=2756 revision[0;m=133d7e76 version[0;m=15.6.1 [0;33m Enter the GitLab instance URL ( for example, https: //gitlab.com/): http: //localhost:8080/abc/abc Enter the registration token: glpat-JzSJsWcxMnNaAMMax [runnertest2]runnertest1 shell Enter tags for the runner (comma-separated): shell,runnertest2_shell Enter optional maintenance note for the runner: shell for runnertest2 Registering runner... succeeded [0;m runner[0;m=gghjkkll... Enter an executor: ssh, virtualbox, kubernetes, custom, docker, docker-windows,parallels, instance, docker-ssh, shell, docker+machine, docker-ssh+machine: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [0;m Configuration (with the authentication token) was saved in "C:\\GitLab-Runner\\c onfig.toml"[0;m |
记得更改仓库地址,命令token
gitlab-ci.yml文件里的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | stages: - build - test - review - deploy build-job: stage: build script: - echo "开始测试runnertest1 shell..." - docker run --rm maven:3-jdk-11-slim mvn -v - echo "结束测试runnertest1 shell." tags: - runnertest1_shell test-job: stage: test script: - echo "开始测试runnertest1 maven..." - mvn -v - echo "结束测试runnertest1 maven." tags: - runnertest1_maven review-job: stage: review image: maven:3-jdk-11-slim script: - echo "开始测试runnertest1 maven..." - java -version - echo "结束测试runnertest1 maven." tags: - docker deploy-job: stage: deploy script: - echo "开始测试windows shell runner..." - java -version - echo "结束测试windows shell runner." tags: shell,runnertest2_shell |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具