gitlab-cicd问题总结

问题总结1 .gitlab-ci.yml脚本中tag

  • 以下两个tag需要一一对应,否则触发不了CICD
  • 脚本中的tags
  tags:
    - develop
  • gitlab中的tag

在这里插入图片描述

问题总结2 .gitlab-ci.yml脚本中only

  • only 下边的名称要和gitlab中分支名字要对应

问题总结3

  • 进行cicd的时候文件.gitlab-ci.yml,test分支merge develop分支,.gitlab-ci.yml会被覆盖,如何避免呢

  • 解决方法

    • 建立一个.gitattribute文件在项目的test分支根目录
    • 将避免被覆盖的文件写入.gitattribute, 如果是多个文件可以顺序写
    .gitlab-ci.yml merge = ours
    
    • 输入命令行 git config merge.ours.driver true
    • 这样就test merge develop分支的时候就可以避免被覆盖
  • 避坑

    • 如果main分支merge test分支的时候,同样的道理
    • 重点 但是.gitattribute这个文件,在test分支上的修改时间要落后于dev分支的修改时间
    • refer

问题总结4: docker-compose.yml 映射物理机目录不能动态更新

  • 目录真确性检查
    • 首先查找Dockerfile 中的目录路径是否正确,FROM golang:1.17-alpine
    • 查看docker-compose.yml映射路径是否正确
  • 最后发现docker-compose.yml 用了Dockerfile中的 $GOPATH, 那这里能用GOPATH?
    • 修改前后
    volumes:
      - /data/logs/manage_system:$GOPATH/src/manage_system/log:rw
    volumes:
      - /data/logs/manage_system:/go/src/manage_system/log:rw
  • 经过替换调试将GOPATH换成真实目录/go
  • 经过测试,物理机的日志目录也可以动态更新
  • 结论
    • 镜像的环境变量不能被docker-compose.yml使用,
    • 但是镜像可以使用docker-compose.yml 以及.evn的环境变量

问题5: 如何一个容器启动多个服务

Dokcerfile中

  • CMD sh entrypoint.sh

问题6: 如何进行gitlab 注册

  • 进入项目目录找到如下截图

  • 在这里插入图片描述

  • 找到token

    • 在这里插入图片描述
  • 在docker服务器上进行注册

    • /usr/local/bin/gitlab-runner register
    • 输入上图的url token等信息即可注册成功
	## 操作流程
- /usr/local/bin/gitlab-runner register
    - 输入http://47.104.111.178/
    - 输入token
- 提示描述 
    - 输入项目名+dev+runner

- 提示tag 输入
    - dev (项目中的tags 和gitlab中的tags要一致)

- 最后的都输入 shell

问题6: 如何通过tag发布;例如发布奥release分支

  • 找到对应的分支,打上对应的tags
    在这里插入图片描述
  • 定义git_tag 通过CI_COMMIT_TAG发布
    -
  • 进行脚本编写
- docker build -f ./docker/Dockerfile -t $CI_DOCKER_REGISTRY_SERVER/release_${PROJECT_DOCKER_NAME}:$GIT_TAG .
- docker-compose -f docker-compose.yml  down
- docker-compose --compatibility -f docker-compose.yml up -d
  • 结果验证(变成标签,而不是分支)
    在这里插入图片描述

问题总结7:

  • 现象
 ERROR: Registering runner... forbidden (check registration token)  runner=token BZPANIC: Failed to register the runner.
  • 解决问题
sudo gitlab-runner register

问题总结8:

  • 现象: 如果发现建立的gitlabruner 出现灰色叹号(在gitlab- setting-cicd- runner)
  • 问题分析:1. 账号分配的权限问题,需要哟sudo -i 权限。 2. gitlab-runner 版本问题(运行程序的服务器上)
  • 解决方法
    • 1.给账号分配sudo -i权限
    • 按照官方文档进行gitlab-runner安装
    • 文档地址: https://docs.gitlab.com/runner/install/linux-manually.html

问题总结9:

  • 问题:如何添加项目member

  • 解答: 鼠标放在project information,点击member
    在这里插入图片描述

  • 搜索member的名字 找到后加入即可

在这里插入图片描述


版权声明:本文为weixin_38805083原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。