问题总结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版权协议,转载请附上原文出处链接和本声明。