我使用amazon/aws-cli:2.2.40在gitlab管道中发布一个静态站点到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/aws-cli
映像的入口点是:/usr/local/bin/aws
。当您在本地单独运行aws
时,它将返回帮助消息并给出一个252退出代码。要覆盖入口点,您可以这样做:
test:
stage: test
image:
name: amazon/aws-cli
entrypoint: [""]
script:
- aws s3 help