amazon-s3 - 官方 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/aws-cli
图像的入口点是:/usr/local/bin/aws
. 当您在aws
本地运行时,它会返回帮助消息并给出 252 退出代码。要覆盖 entrypoint,您可以这样做:
test:
stage: test
image:
name: amazon/aws-cli
entrypoint: [""]
script:
- aws s3 help
推荐阅读
- javascript - 用 JavaScript 比较两个数据集
- json - 解析捆绑器 - json 1.8.0。Ruby 不兼容
- android - 带有私有参数的 Koin 单例注入构造函数
- wordpress - ACF:如何在 category.php 页面中获取子字段?
- mysql - 仅记录插入、更新和删除 mysql 查询?
- c++ - 使用派生类实例化基类,而不在对象定义中使用指针
- javascript - Jquery 抛出“非法调用”错误
- python - Ren'py的地图和热点
- r - caret train 错误:至少一个类级别不是有效的 R 变量名
- azure - Azure 搜索 - 使用拆分技能翻译完整文档