Rails ElasticBeanstalk多容器Docker部署

时间:2018-07-25 18:07:40

标签: ruby-on-rails docker elastic-beanstalk

我在Mac上第一次尝试使用ElasticBeanstalk CLI创建和部署我使用docker-compose开发的Docker Multicontainer Rails 5.2,Postgres,ActiveStorage内容管理系统。我无法完全克服此错误:

CannotCreateContainerError

  

ECS任务已停止,原因是:任务中的基本容器已退出。 (网络:   CannotCreateContainerError:API错误(400):创建./:“./”包括   仅本地卷名的无效字符   允许使用“ [a-zA-Z0-9] [a-zA-Z0-9 _.-]”。如果您打算通过   主机目录,使用绝对路径

我以为这是来自

Dockerrun.aws.json

我基于docker-compose.yml和.docker子目录创建的文件,但该相对路径不再位于Dockerrun.aws.json中'web'的卷部分的sourcepath中,并且问题仍然存在。 / p>

总体而言,我想知道我是应该首先这样做还是应该退一步以更传统的方式来部署Rails应用程序。

Dockerrun.aws.json

{
  "AWSEBDockerrunVersion": 2,
"containerDefinitions": [
    {
        "name": "app",
                    "image": "ruby:2.5-alpine",                         
        "essential": true,
        "mountPoints": [
            {
                "containerPath": "/app",
                "sourceVolume": "_"
            }
        ],
        "portMappings": [
            {
                "containerPort": 3000,
                "hostPort": 3000
            }
        ],
        "workingDirectory": "/app",
              "memory": 128                     
    },
    {
        "name": "db",
        "essential": true,
        "image": "postgres:10.3-alpine",
        "mountPoints": [
            {
                "containerPath": "/var/lib/postgresql/data",
                "sourceVolume": "Postgres"
            }
        ],
              "memory": 128                     
    },
    {
        "name": "web",
        "essential": true,
              "memory": 128,
                    "image": "nginx",                       
        "mountPoints": [
            {
                "containerPath": "/app",
                "sourceVolume": "_"
            }
        ],
        "portMappings": [
            {
                "containerPort": 80,
                "hostPort": 80
            }
        ],
        "workingDirectory": "/app",
              "memory": 128                     
    }
],
"family": "",
"volumes": [
    {
        "host": {
            "sourcePath": "/var/app/current"
        },
        "name": "_"
    },
    {
        "host": {
            "sourcePath": "postgres"
        },
        "name": "Postgres"
    }
]

}

0 个答案:

没有答案