日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gitflow branch与Docker image tag命名冲突怎么办?

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gitflow branch与Docker image tag命名冲突怎么办? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

谷歌還是比必應要好用一點。

在前公司,我根據主流的git flow 給團隊搭建了一套devops流程,運行在 docker & k8s上。

在現代devops流程中,一般推薦使用git分支名或者git tag作為鏡像的tag名


在實際操作中, 我遇到了一個流程阻塞。

根據git flow的規范,我們一般會打出feature/xxx, fix/issue234, ? release/x.x.x 這樣的分支名, 當然我們還會產生x.y.z 這樣的git tag名。

但是docker build -t產生鏡像tag的規定,除了-,_,.鏡像tag不允許使用其他特殊字符

A tag name must be valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. A tag name may not start with a period or a dash and may contain a maximum of 128 characters

我當時是讓團隊小伙伴不要打出含有?/的分支名, 改用其他,如上圖中所示的release-1.0.0等,但是我始終覺得不是一個常規操作,因為這破壞了一以貫之的git flow命名規范,而且需要在團隊內做技術性約束。


當git flow分支命名與docker image tag分支有沖突,該怎么辦?

面向谷歌編程,面向Stackoverflow[1]編程啊。

01

腳本替換

在Gitlab-ci流程中,我們使用shell腳本轉換為release-v1-0-1:

docker build . -t image_name:$CI_COMMIT_REF_NAME | sed 's/[^a-zA-Z0-9]/-/g'

CI_COMMIT_REF_NAME: The branch or tag name for which project is built.

02

gitlab-ci內置變量CI_COMMIT_REF_SLUG

可能Gitlab-ci早就關注到這個問題, 在9.0 給出了一個CI_COMMIT_REF_SLUG變量。

CI_COMMIT_REF_SLUG?:CI_COMMIT_REF_NAME in lowercase, shortened to 63 bytes, and with everything except 0-9 and a-z replaced with -. No leading / trailing -. Use in URLs, host names and domain names.

很明顯,CI_COMMIT_REF_SLUG[2]?是最優解,完美規避了gitflow branch和Docker image tag的命名沖突。

本文基本沒啥技能點, 單純記錄在Devops路上的一個小插曲,前人栽樹后人乘涼;

順便表明一個態度,希望在流暢、自然的開發流程上深耕。

后續大家有意的話,可以結合 《基于容器和K8s的 Devops 探索和落地實踐》 了解一個常規/有效/可落地的Devops流程。

引用鏈接

[1]?Stackoverflow:?https://stackoverflow.com/questions/62905914/turning-a-git-branch-name-into-a-valid-docker-image-tag
[2]?CI_COMMIT_REF_SLUG:?https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

總結

以上是生活随笔為你收集整理的Gitflow branch与Docker image tag命名冲突怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。