Version error in AWS Elastic beanstalk for Multicontainer dock configuration
Trying to bind mysql to a fabricator in elastic beanstalk using the dockerrun.aws.json file as shown below.
But it throws an error like
[Instance: i-cdbaf100 Module: AWSEBAutoScalingGroup ConfigSet: null]
Command failed on instance.
Return code: 1
Output: Invalid Dockerrun.aws.json version, abort deployment.
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed.
For more detail, check /var/log/eb-activity.log using console or EB CLI.
Can anyone help resolve this?
Here is the Dockerfile.aws.json:
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "mysql-database",
"image": "mysql",
"essential": true,
"memory": 400
},
{
"name": "phabricator-only",
"image": "yesnault/docker-phabricator-alone",
"essential": true,
"memory": 400,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"mysql-database"
]
}
]
}
Here is the activity log file
[2015-05-09T08:12:17.546Z] INFO [24016] - [CMD-AppDeploy] : Starting activity...
[2015-05-09T08:12:17.820Z] INFO [24016] - [CMD-AppDeploy/AddonsBefore] : Starting activity...
[2015-05-09T08:12:17.820Z] INFO [24016] - [CMD-AppDeploy/AddonsBefore] : Completed activity.
[2015-05-09T08:12:18.086Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0] : Starting activity...
[2015-05-09T08:12:18.086Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteConfig] : Starting activity...
[2015-05-09T08:12:18.089Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteConfig] : Completed activity. Result:
Recreated directory /opt/elasticbeanstalk/deploy/configuration/.
Generate appsource url file at /opt/elasticbeanstalk/deploy/configuration/appsourceurl.
Generate container config file at /opt/elasticbeanstalk/deploy/configuration/containerconfiguration.
[2015-05-09T08:12:18.089Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp1] : Starting activity...
[2015-05-09T08:12:18.089Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp1] : Completed activity. Result:
Recreated directory /opt/elasticbeanstalk/deploy/appsource.
[2015-05-09T08:12:18.089Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2] : Starting activity...
[2015-05-09T08:12:18.332Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2] : Starting activity...
[2015-05-09T08:12:18.333Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2/Infra-WriteApplication2] : Starting activity...
[2015-05-09T08:12:18.333Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2/Infra-WriteApplication2/Command 01downloadVersion] : Starting activity...
[2015-05-09T08:12:18.385Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2/Infra-WriteApplication2/Command 01downloadVersion] : Completed activity.
[2015-05-09T08:12:18.385Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2/Infra-WriteApplication2] : Completed activity.
[2015-05-09T08:12:18.385Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2/Infra-WriteApplication2] : Completed activity.
[2015-05-09T08:12:18.407Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/InfraWriteApp2] : Completed activity.
[2015-05-09T08:12:18.407Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/EbExtensionPreBuild] : Starting activity...
[2015-05-09T08:12:18.646Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Starting activity...
[2015-05-09T08:12:18.647Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Completed activity.
[2015-05-09T08:12:18.663Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/EbExtensionPreBuild] : Completed activity.
[2015-05-09T08:12:18.663Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook] : Starting activity...
[2015-05-09T08:12:18.663Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/00clean_dir.sh] : Starting activity...
[2015-05-09T08:12:18.843Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/00clean_dir.sh] : Completed activity.
[2015-05-09T08:12:18.843Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/01unzip.sh] : Starting activity...
[2015-05-09T08:12:19.121Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/01unzip.sh] : Completed activity. Result:
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "mysql-database",
"image": "mysql",
"essential": true,
"memory": 400
},
{
"name": "phabricator-only",
"image": "yesnault/docker-phabricator-alone",
"essential": true,
"memory": 400,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"mysql-database"
]
}
]
}
[2015-05-09T08:12:19.121Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/02docker_db_check.sh] : Starting activity...
[2015-05-09T08:12:19.124Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/02docker_db_check.sh] : Completed activity. Result:
0||/
[2015-05-09T08:12:19.125Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/03build.sh] : Starting activity...
[2015-05-09T08:12:19.426Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/03build.sh] : Activity execution failed, because: Invalid Dockerrun.aws.json version, abort deployment (ElasticBeanstalk::ExternalInvocationError)
caused by: Invalid Dockerrun.aws.json version, abort deployment (Executor::NonZeroExitStatus)
[2015-05-09T08:12:19.426Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/03build.sh] : Activity failed.
[2015-05-09T08:12:19.427Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook] : Activity failed.
[2015-05-09T08:12:19.427Z] INFO [24016] - [CMD-AppDeploy/AppDeployStage0] : Activity failed.
[2015-05-09T08:12:19.427Z] INFO [24016] - [CMD-AppDeploy] : Completed activity. Result:
Command CMD-AppDeploy failed.
source to share
OP javvaji kiran adds in the comments :
The service was not available for the location I chose.
But the service is available elsewhere.
Original answer:
It depends on the error message, but note that all valuesDockerrun.aws.json
are usually enclosed in double quotes.
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "janedoe/image",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "1234"
}
],
....
Check if the error persists after adding double quotes in your own Dockerrun.aws.json
However, the exact error message is:
Activity execution failed, because: Invalid Dockerrun.aws.json version
See this source :
# Dockerrun.aws.json verson checking
# right now only one valid version "1"
if [ -f Dockerrun.aws.json ]; then
[ "`cat Dockerrun.aws.json | jq -r .AWSEBDockerrunVersion`" = "1" ] || error_exit "Invalid Dockerrun.aws.json version, abort deployment" 1
fi
So try with "AWSEBDockerrunVersion": "1",
Also, I see no reference to the valid keys and values for the fileDockerrun.aws.json
.
source to share
If you receive the error "Invalid version of Dockerrun.aws.json, please stop deploying." It is also possible that you are not using the correct decision stack.
In my case, I was using a single container solution stack and I had to use the Multicontainer solution stack. Once I set up my environment to use the tiered solution, this error went away.
A list of solution stacks can be found here: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.docker
source to share
When creating an environment, you need to select the type of multiple containers. It may be necessary to remove and create a new environment, as a single container upgrade is not available right now
Make sure the "Configuration" on the toolbar says "Launch Multi-Container Docker".
source to share