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

  

posted @   耿有才  阅读(226)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示