今天收到一個需求是希望把 Docker tag 上面的 v 移除掉,因為我們開發通常用 npm 做版本管理並且自動上 tag,所以 tag 就會像是 v1.0.0
因此在使用 GitLab CI 的 CI_COMMIT_TAG 變數就會有 v,那要如何可以把這個 v 移除掉呢?其實我們可以在變數的地方用 shell 指令把第一個字元移除,就可以達成我們要的功能了實驗一下功能
$ version=v1.0.0
$ echo $version
v1.0.0
$ tag=${version:1}
$ echo $tag
1.0.0
得到了以上的結果就可以把它實作在 .gitlab-ci.yml 上面拉!
stages:
- build
build:
image: docker:stable
stage: build
script:
- tag=${CI_COMMIT_TAG:1}
- docker pull $REPOSITORY_URL:latest || true
- docker build
--cache-from $REPOSITORY_URL:latest
--tag $REPOSITORY_URL:$tag
--tag $REPOSITORY_URL:latest .
- docker push $REPOSITORY_URL:$tag
- docker push $REPOSITORY_URL:latest
only:
- tags
以上就是這次的實驗結果,希望對大家有幫助!