Travis无法将docker化的应用部署到AWS Elasticbeanstalk上。

问题描述 投票:2回答:1

我试图用Travis实现一个docker应用的持续部署系统,测试运行正常,当travis进入部署阶段时,我在尝试部署到AWS Elastic Beanstalk时得到以下错误。

/home/travis/.rvm/gems/ruby-2.4.5/gems/aws-sdk-core-2.11.523/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': The request signature we calculated does not match the signature you provided. Check your key and signing method. (Aws::S3::Errors::SignatureDoesNotMatch)

下面是我的travis.yml文件

language: generic
services:
  - docker

before_install:
  - docker build -t nurul3101/docker-react -f Dockerfile.dev .

script:
  - docker run -e CI=true nurul3101/docker-react npm run test -- --coverage

deploy:
  provider: elasticbeanstalk
  region: "ap-south-1"
  app: "docker-react-app"
  env: "DockerReactApp-env"
  bucket_name: "elasticbeanstalk-ap-south-1-378997148642"
  bucket_path: "docker-react-app"
  on:
    branch: master
  access_key_id: $AWS_ACCESS_KEY
  secret_access_key:
    secure: $AWS_SECRET_KEY

如何解决这个问题?

docker amazon-elastic-beanstalk travis-ci
1个回答
2
投票

该错误 (Aws::S3::Errors::SignatureDoesNotMatch) 表示问题是由于权限造成的。我可以看到你在你的应用程序中传递了$AWS_ACCESS_KEY和$AWS_SECRET_KEY。travis.yml 文件。

  • 第一步,你可以检查你的travis仓库设置中的值是否正确。

  • 而不是通过 $AWS_SECRET_KEY 中的安全密钥,直接传给secret_access_key。像。

 secret_access_key: $AWS_SECRET_KEY 

根据Travis的最新更新,这才是正确的方法。这是Travis论坛中讨论这个问题的一个帖子。Travis论坛

© www.soinside.com 2019 - 2024. All rights reserved.