mysqlamazon-web-servicesdockeramazon-elastic-beanstalkphabricator

Version error in AWS Elastic beanstalk for Multicontainer Docker Configuration


Trying to link mysql with phabricator in Elastic beanstalk with help of dockerrun.aws.json file as shown below.

But it sows error as

[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 someone please help in resolving this?

Here is the Dockerfile.aws.json file:

{
  "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 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.

Solution

  • The OP javvaji kiran adds in the comments:

    The service was not available for the location which I selected.
    But service are available in other locations


    Original answer:

    It depends on the error message you have, but note that all values of a Dockerrun.aws.json are normally 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

    That said, 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 don't see "links" in the Valid keys and values for the Dockerrun.aws.json file.