首页 > 解决方案 > 官方 aws-cli 镜像不接受来自 gitlab 的脚本命令

问题描述

我在 gitlab 管道中使用amazon/aws-cli:2.2.40在 S3 上发布静态站点。

deploy_front: 
  image: amazon/aws-cli:2.2.40
  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

最终在

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument command: Invalid choice, valid choices are:
accessanalyzer                           | acm                                     
acm-pca                                  | alexaforbusiness                        
amp                                      | amplify                                 
amplifybackend                           | apigateway
.......                                    ..........

我设法通过在docker run -it amazon/aws-cli:2.2.40 aws s3本地运行来复制此错误。但是docker run -it amazon/aws-cli:2.2.40 s3有效,所以我不明白为什么无论我在script. 这是一个逃避的问题吗?

标签: amazon-s3gitlab-ciaws-cli

解决方案


这是由于amazon/aws-cli图像的入口点是:/usr/local/bin/aws. 当您在aws本地运行时,它会返回帮助消息并给出 252 退出代码。要覆盖 entrypoint,您可以这样做:

test:
  stage: test
  image: 
    name: amazon/aws-cli
    entrypoint: [""]
  script:
    - aws s3 help

推荐阅读