我正在尝试在.gitlab-ci.yml中调用外壳命令,它的相关部分是:
image: docker:latest
services:
- docker:dind
stages:
- build
- deploy
...
build:
stage: build
script:
- apt-get update -y
- GIT_TAG=$(git tag | tail -1)
- GIT_TAG=$(/usr/bin/git tag | tail -1)
- docker ...
但是,前三个shell命令调用都失败了,都出现了"command not found
“错误。git
命令失败真的很奇怪,因为在开始script
部分之前,它必须首先获得git代码库。也就是说,我可以看到git
正在工作,但我自己就是不能使用它。
有没有办法让它工作呢?
发布于 2019-05-21 05:14:18
您可以看到git
在不同的步骤中工作,因为GitLab可能在另一个容器中执行此操作。它们让你的容器保持干净,所以你必须自己安装依赖项。
由于您使用的镜像是基于Alpine的,因此安装git
的命令是:
apk add --no-cache git
如果你所需要的只是git信息,你也可以跳过整个过程,使用predefined environment variables。$CI_COMMIT_TAG
将包含标记,而$CI_COMMIT_SHA
将包含提交散列。
https://stackoverflow.com/questions/56227593
复制相似问题