You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

官方amazon/aws-cli镜像在GitLab流水线中无法执行script命令问题

问题根因

amazon/aws-cli官方镜像默认将入口点(ENTRYPOINT)设置为aws命令:

  • 本地直接执行docker run -it amazon/aws-cli:2.2.40 s3时,等价于实际运行aws s3,所以运行正常
  • 如果本地执行命令时加了aws前缀,就会变成aws aws s3,触发你看到的无效命令报错
    而GitLab CI执行作业时默认会重置镜像的ENTRYPOINT为/bin/sh,不会复用镜像默认配置,导致两种写法都匹配不到正确的执行逻辑,不属于转义问题。

解决方案

有两种通用修复方式,二选一即可:

方案1(更推荐,符合常规使用习惯)

显式重置镜像入口点为空,脚本内使用完整aws命令:

deploy_front: 
  image: 
    name: amazon/aws-cli:2.2.40
    entrypoint: [""]
  variables:
    AWS_ACCESS_KEY_ID:  $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
    AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
  stage: publish
  script:
    - aws s3 sync ./front/build s3://some-bucket-name

方案2

保留镜像默认ENTRYPOINT为aws,脚本内只传s3相关参数:

deploy_front: 
  image: 
    name: amazon/aws-cli:2.2.40
    entrypoint: ["aws"]
  variables:
    AWS_ACCESS_KEY_ID:  $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
    AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
  stage: publish
  script:
    - s3 sync ./front/build s3://some-bucket-name

内容的提问来源于stack exchange,提问作者zar3bski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:27:02