成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Gitflow Branch與 Docker Image Tag 命名沖突怎么辦?

開發 開發工具
在前公司,我根據主流的git flow 給團隊搭建了一套devops流程,運行在 docker & k8s上。在現代devops流程中,一般推薦使用git分支名或者git tag作為鏡像的tag名。

[[431613]]

本文轉載自微信公眾號「精益碼農」,作者有態度的馬甲。轉載本文請聯系精益碼農公眾號。

在前公司,我根據主流的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腳本將特殊字符替換:

  1. docker build . -t image_name:$CI_COMMIT_REF_NAME | sed 's/[^a-zA-Z0-9]/-/g'
  1. CI_COMMIT_REF_NAME: The branch or tag name for which project is built. 

02gitlab-ci內置變量CI_COMMIT_REF_SLUG

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

  1. 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流程。

 

責任編輯:武曉燕 來源: 精益碼農
相關推薦

2024-10-09 17:06:52

RedisHash哈希表

2024-10-18 09:55:50

RedisHash數據

2021-12-09 11:46:53

DockerIPLinux

2020-12-18 09:23:41

KubernetesDocker

2010-05-24 18:32:16

SVN中tag bra

2021-01-04 10:02:17

DockerLoaded plug操作系統

2020-12-03 06:18:04

磁盤Docker容器

2009-11-03 08:56:02

linux死機操作系統

2024-04-22 08:17:23

MySQL誤刪數據

2022-12-19 11:31:57

緩存失效數據庫

2017-02-21 13:11:43

SDN網絡體系SDN架構

2022-05-19 08:01:49

PostgreSQL數據庫

2010-05-24 18:15:34

SVN中Branch和

2019-10-12 09:50:46

Redis內存數據庫

2018-01-28 20:39:39

戴爾

2022-07-05 11:48:47

MySQL死鎖表鎖

2015-10-22 09:09:59

BAT投資VC

2010-08-18 10:07:37

NATPAT

2019-05-23 10:13:03

ARM華為芯片

2017-12-21 20:01:38

潤乾報表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲三区视频 | 精品婷婷| 精品在线观看入口 | 欧美亚洲第一区 | 日韩电影中文字幕在线观看 | 日韩一区二区三区在线 | 国产高清不卡 | 一区二区三区中文字幕 | 国产精品一区二区三区久久久 | 国产精品一区二区三区免费观看 | 国产精品1| 一级免费在线视频 | 欧美精品一区二区三区蜜桃视频 | 中文字幕一区二区三区在线观看 | 国产一区二区三区在线观看免费 | 午夜免费观看网站 | 色综合一区二区 | 成年视频在线观看福利资源 | 一区二区在线免费观看 | 电影午夜精品一区二区三区 | 色综合网站 | 久久只有精品 | 久草免费在线视频 | 亚洲精品一 | 久久精品一区 | 亚洲天堂一区二区 | 韩国主播午夜大尺度福利 | 亚洲一级淫片 | 国产视频久久 | 91精品免费 | 91精品国产自产精品男人的天堂 | 一区二区三区日韩 | 手机av在线| 久久久高清 | 久久国产精品免费一区二区三区 | 国产视频久久久 | 成人午夜视频在线观看 | а_天堂中文最新版地址 | 亚洲午夜视频在线观看 | 亚洲网站在线观看 | 丝袜天堂|