在 gitlab 管道作业中使用 yq 图像时出错
2022-09-23
1392
我有一个 gitlab 管道作业,它使用 yq 工具从 yaml 文件中提取版本号,然后将其导出为环境变量。我使用 mikefarah/yq:4.27.2 作为基础映像。管道代码是:
prepare-version:
image: mikefarah/yq:4.27.2
stage: prepare
script:
- ver=$(yq '.version' versions.yml)
- echo "version=${ver}" >> version.env
artifacts:
reports:
dotenv: version.env
管道总是在以下位置失败:
Using docker image sha256:cecdbf2efcf7240d3378dd188844b2b5805420eef692dfb98aa3a1b6d366ef5a for mikefarah/yq:4.27.2 with digest mikefarah/yq@sha256:856f7ab12c58608d422a742a4917e6998ad065d9d48a5b1cd69c3ce8fa80f3fa ...
Error: unknown shorthand flag: 'c' in -c
Usage:
yq eval [expression] [yaml_file1]... [flags]
Aliases:
eval, e
Examples:
# Reads field under the given path for each file
yq e '.a.b' f1.yml f2.yml
# Prints out the file
yq e sample.yaml
当在本地使用
yq '.version' versions.yml
使用相同的 yq 版本时,一切正常。但在管道中它失败了。有什么想法为什么会发生这种情况吗?
3个回答
MostafaBakr
2022-09-23
prepare-version:
image:
name: mikefarah/yq:4
entrypoint: [""]
stage: prepare
...
修复它。
Stewie
2023-07-24
由于文档没有说明为什么会发生这种情况,因此创建我自己的 yq Docker 映像更容易。
FROM amazoncorretto:17.0.7-alpine3.17
RUN wget https://github.com/mikefarah/yq/releases/download/v4.34.1/yq_linux_amd64 -O /usr/bin/yq
RUN chmod +x /usr/bin/yq
MostafaBakr
2023-08-07