官方 aws-cli 映像不接受来自 gitlab 的脚本命令

zar*_*ski 2 amazon-s3 aws-cli gitlab-ci

我在 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
Run Code Online (Sandbox Code Playgroud)

最终在

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
.......                                    ..........
Run Code Online (Sandbox Code Playgroud)

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

dco*_*coy 7

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

test:
  stage: test
  image: 
    name: amazon/aws-cli
    entrypoint: [""]
  script:
    - aws s3 help
Run Code Online (Sandbox Code Playgroud)