GitLab Pipeline如何选用同时内置AWSCLI与Git的容器镜像?
问题现象
现有GitLab Pipeline配置:
stages: - api-init - api-plan - api-apply run-api-init: stage: api-init image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest script: - git submodule add --name $rnme ../test.git - aws s3 cp xxx xxx artifacts: reports: dotenv: build.env
流水线运行报错:
/usr/bin/bash: line 127: git: command not found
报错根因:registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest镜像仅预装AWS CLI,未内置Git命令。
解决方案
两种方案均可满足需求,按需选择:
- 直接替换为同时内置AWS CLI和Git的公共可用镜像
经过验证的稳定镜像选项:bitnami/aws-cli:latest:Bitnami维护的AWS CLI官方镜像,默认预装Git、常用shell工具,兼容性好,直接替换原有image字段值即可直接使用amazonlinux:2023:亚马逊官方维护的Linux发行版镜像,默认软件源提供AWS CLI v2和Git安装包,稳定性由官方保障
- 保留现有镜像,在任务脚本开头临时安装Git(改动最小,推荐)
当前使用的aws-base镜像基于Alpine Linux制作,仅需在script段最前增加Git安装命令即可,安装过程耗时数秒,几乎不影响流水线整体运行速度,修改后的任务配置参考:
run-api-init: stage: api-init image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest script: - apk add --no-cache git - git submodule add --name $rnme ../test.git - aws s3 cp xxx xxx artifacts: reports: dotenv: build.env
若使用Debian/Ubuntu系基础的AWS镜像,安装Git的命令替换为
apt update && apt install -y git即可。
内容的提问来源于stack exchange,提问作者Huiting
相关产品推荐
相关产品推荐

