适用于Multicontainer Docker配置的AWS Elastic beanstalk中的版本错误

时间:2022-01-24 23:18:15

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

尝试使用dockerrun.aws.json文件在Elastic beanstalk中链接mysql和phabricator,如下所示。

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:

这是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 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.

3 个解决方案

#1


The OP javvaji kiran adds in the comments:

OP javvaji kiran在评论中添加:

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.

这取决于您的错误消息,但请注意Dockerrun.aws.json的所有值通常都是双引号。

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

在您自己的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",

所以试试“AWSEBDockerrunVersion”:“1”,

Also, I don't see "links" in the Valid keys and values for the Dockerrun.aws.json file.

此外,我没有在Dockerrun.aws.json文件的有效键和值中看到“链接”。

#2


If you get the error "Invalid Dockerrun.aws.json version, abort deployment. " it's also possible that you're not using the correct Solution Stack.

如果您收到错误“无效的Dockerrun.aws.json版本,中止部署。”,您也可能没有使用正确的解决方案堆栈。

In my case I was using the Single Container Solution Stack and I should have been using the Multicontainer Solution Stack. Once I configured my environment to use the Multicontainer Solution Stack this error went away.

在我的情况下,我使用单容器解决方案堆栈,我应该使用Multicontainer解决方案堆栈。一旦我配置我的环境以使用Multicontainer解决方案堆栈,这个错误就消失了。

A list of Solution Stacks can be found here: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.docker

可以在此处找到解决方案堆栈列表:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.docker

#3


You have to select multi-container type when creating your environment. May require deleting and creating new environment as upgrading from single-container is not available right now.

您必须在创建环境时选择多容器类型。可能需要删除和创建新环境,因为目前无法从单个容器升级。

Make sure it says "running Multi-container Docker" on Dashboard under Configuration.

确保在配置下的仪表板上显示“正在运行多容器Docker”。

#1


The OP javvaji kiran adds in the comments:

OP javvaji kiran在评论中添加:

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.

这取决于您的错误消息,但请注意Dockerrun.aws.json的所有值通常都是双引号。

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

在您自己的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",

所以试试“AWSEBDockerrunVersion”:“1”,

Also, I don't see "links" in the Valid keys and values for the Dockerrun.aws.json file.

此外,我没有在Dockerrun.aws.json文件的有效键和值中看到“链接”。

#2


If you get the error "Invalid Dockerrun.aws.json version, abort deployment. " it's also possible that you're not using the correct Solution Stack.

如果您收到错误“无效的Dockerrun.aws.json版本,中止部署。”,您也可能没有使用正确的解决方案堆栈。

In my case I was using the Single Container Solution Stack and I should have been using the Multicontainer Solution Stack. Once I configured my environment to use the Multicontainer Solution Stack this error went away.

在我的情况下,我使用单容器解决方案堆栈,我应该使用Multicontainer解决方案堆栈。一旦我配置我的环境以使用Multicontainer解决方案堆栈,这个错误就消失了。

A list of Solution Stacks can be found here: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.docker

可以在此处找到解决方案堆栈列表:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.docker

#3


You have to select multi-container type when creating your environment. May require deleting and creating new environment as upgrading from single-container is not available right now.

您必须在创建环境时选择多容器类型。可能需要删除和创建新环境,因为目前无法从单个容器升级。

Make sure it says "running Multi-container Docker" on Dashboard under Configuration.

确保在配置下的仪表板上显示“正在运行多容器Docker”。