【问题标题】:AWS CLI tools on Circle CI: configure: unknown commandCircle CI 上的 AWS CLI 工具:配置:未知命令
【发布时间】:2015-03-18 01:28:04
【问题描述】:

我正在尝试将 docker 应用程序从 Circle CI 部署到 Elastic Beanstalk。

我的circle.yml的部署部分是

deployment:
  hub:
    branch: [internal, production]
    commands:
      - pip install awscli
      - docker push company/web:$CIRCLE_SHA1
      - sudo bash deploy.sh $CIRCLE_SHA1 $CIRCLE_BRANCH $CIRCLE_BUILD_NUM

我的 deploy.sh 调用 aws cli 如下

aws --version
aws configure set aws_access_key_id $AWSKEY
aws configure set aws_secret_access_key $AWSSECRETKEY
aws configure set default.region us-west-2
aws configure set default.output json

echo "SAVING NEW DOCKERRUNFILE: $DOCKERRUN_FILE"
aws s3 cp $DOCKERRUN_FILE s3://$EB_BUCKET/$DOCKERRUN_FILE

但我得到了错误

--version: 元参数拼写错误?

完整性检查:“/root/.awssecret”:文件丢失。 (格式:AccessKeyID\nSecretAccessKey\n)

配置:未知命令用法:aws ACTION [--help]

该脚本在 mac os 上使用完全相同的密钥和密码在本地运行良好。

awscli 的两个版本(在 circle 和我的 mac 上)都是 1.7.14

【问题讨论】:

    标签: amazon-web-services ubuntu-12.04 aws-cli circleci


    【解决方案1】:

    我是来自 CircleCI 的凯文。看起来这里的问题与安装 Python 依赖项时 CircleCI 将它们安装到 virtualenv 中的事实有关。这通常是一件好事,因为它将您的 Python 环境与默认系统 Python 隔离开来,并支持我们的依赖项缓存。这里的问题是您正在使用 sudo 运行 deploy.sh 脚本,这会破坏 virtualenv 环境并运行默认系统版本(在这种情况下,它实际上是一个较旧的替代 AWS CLI)。删除 sudo 应该可以为您解决问题。 (你最好在“依赖”阶段运行pip install awscli==x.x.x,因为它会被缓存。)

    PS:请联系 sayhi@circleci.com 以便及时回复一般问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多