peer
peer

Reputation: 4719

How to deploy a new version after a failed one on Elastic Beanstalk?

I want to deploy an app to elastic beanstalk via Dockerrun.aws.json in the browser. I click on Create Application, choose local file and input version label as v0.0.0

Deplyment doesn't work because there is an error in my file, so I fix that and want to upload a new version.

Per https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html#deployments-newversion I go to the navigation pane, choose Environments, choose my environment, click on Upload and deploy and select my changed local file. The suggested new version label is v0.0.0-1. I accept that and click on deploy. My second deployment then fails, apparenty because of versioning because under Health it says Incorrect application version "v0.0.0-1" (deployment 2). Expected version "v0.0.0" (deployment 1).

I would like to understand why I cannot deploy the way I'm trying to and how to do it right.

Things I've tried:

Terminate the environment and create a new one

Works but takes a lot of time.

Deploying under the same version via Upload and Deploy

(ensuring same conditions by terminating current environment, creating new one, failing first deployment)
As the old version is expected, I try to enter the old version label v0.0.0 for the second deployment.
I click on Upload and deploy but the form doesn't allow for that and says An application version with that label already exists.

enter image description here

Deploying under the same version via Application versions

Marcin suggested Application versions. There I can see the original version which failed:

enter image description here

now I can upload a new file

Upvotes: 0

Views: 2639

Answers (2)

peer
peer

Reputation: 4719

My problem was that I deployed a multi docker container app ("AWSEBDockerrunVersion": 2) but did not select Multi-container as a Platform branch.

Upvotes: 0

Marcin
Marcin

Reputation: 238747

You should deploy old versions from Application Version page.

The window you have screenshot-ed in the question, is to upload a new version, not re-deploy the old one. Thus you get the error message, that you want to label a new version of your application as an old version.

However, if you want to upload old version yourself again, you have to assign a new, non-existing label for it.

As a side note for a future, you can minimize the impact of failed deployments on your current environment by using either immutable or blue/green strategies.

Upvotes: 3

Related Questions