amazon-web-services - 如何在Elastic--Beanstalk实例中更新Docker镜像

标签 amazon-web-services docker deployment travis-ci amazon-elastic-beanstalk

我正在使用elastic-beanstalk部署多个docker容器。我已将travisCI配置为监视代码存储库的master分支的更改,重建docker镜像,将新镜像推送到Docker中心,然后使用elastic-beanstalk重新部署。问题在于,重新部署后,elastic-beanstalk实例继续显示该图像的旧版本。

我的.travis.yml文件:

sudo: required
services:
  - docker

cache: false

before_install:
  - docker build -t [image-tag-1] -f ./client/dev.Dockerfile ./client

script:
  - node ./testTest.js

after_success:
  - docker build -t [image-tag-1]-client ./client
  - docker build -t [image-tag-2]-nginx ./nginx
  - docker build -t [image-tag-3] ./server
  # Log into the docker CLI
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
  # Take those images and push them to docker hub
  - docker push [image-tag-1]
  - docker push [image-tag-2]
  - docker push [image-tag-3]

deploy:
  provider: elasticbeanstalk
  region: us-west-2
  app: xxxx-v7
  env: xxxxx-env
  bucket_name: elasticbeanstalk-us-west-2-xxxx
  bucket_path: docker-xxxx
  on:
    branch: master
  access_key_id:
    secure: $AWS_ACCESS_KEY
  secret_access_key:
    secure: $AWS_SECRET_KEY

将更改推送到master分支后,travis成功地重建并推送了图像,并且成功重新部署了Elastic-Beanstalk。但是elastic-beanstalk站点的内容表明,仍在使用旧的docker镜像。在重新部署期间,如何获得Elastic-Beanstalk实际提取新图像?

最佳答案

尝试在label设置中指定deploy变量。 label是部署版本的唯一标识符。如果继续使用相同的label,则即使您构建并推送新版本,也会将相同版本部署到beantalk。

进一步阅读:

  • Travis CI : AWS Elastic Beanstalk Deployment
  • 关于amazon-web-services - 如何在Elastic--Beanstalk实例中更新Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020986/

    相关文章:

    ios - 构建 iOS 应用程序、网站和后端

    amazon-web-services - 亚马逊产品广告 API - 获得评论排名

    docker - 使用身份验证从 Dockerfile 运行 redis docker 容器

    asp.net-mvc - 部署 ASP.Net MVC 应用程序

    google-app-engine - 尝试部署 GAE App 时出现 "Unable to update app: Failed to compile the generated JSP java files."

    java - 尝试调用服务时出现 404 错误

    amazon-web-services - 用于跨账户访问特定 AWS 账户中的 S3 存储桶的 IAM 角色策略

    java - 每次推送消息时AWS SQS : Is it a way SQS call me consumer,

    docker - 如何从浏览器访问docker容器中运行的Web服务器?

    macos - Laravel Sail & Docker 添加额外站点(多项目)