我正在使用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。
进一步阅读:
关于amazon-web-services - 如何在Elastic--Beanstalk实例中更新Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020986/