将 Web 应用程序部署到 AWS ElasticBeanStalk 时出错

时间:2021-07-05 13:28:21

标签: amazon-web-services docker amazon-elastic-beanstalk travis-ci

从 travis CI 部署到 aws elastic beanstalk 时出现以下错误。

Service:AmazonECS, Code:ClientException, Message:Container list cannot be empty., Class:com.amazonaws.services.ecs.model.ClientException


.travis.yml:

sudo: required
language: generic

services:
  - docker

before_install:
  - docker build -t sathishpskdocker/react-test -f ./client/Dockerfile.dev ./client

script:
  - docker run -e CI=true sathishpskdocker/react-test npm test

after_success:
  - docker build -t sathishpskdocker/multi-client ./client
  - docker build -t sathishpskdocker/multi-nginx ./nginx
  - docker build -t sathishpskdocker/multi-server ./server
  - docker build -t sathishpskdocker/multi-worker ./worker
  # Log in to the docker CLI
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
  # Take those images and push them to docker hub
  - docker push sathishpskdocker/multi-client
  - docker push sathishpskdocker/multi-nginx
  - docker push sathishpskdocker/multi-server
  - docker push sathishpskdocker/multi-worker

deploy:
  provider: elasticbeanstalk
  region: 'us-west-2'
  app: 'multi-docker'
  env: 'Multidocker-env'
  bucker_name: elasticbeanstalk-us-west-2-194531873493
  bucker_path: docker-multi
  On:
    branch: master
  access_key_id: $AWS_ACCESS_KEY
  secret_access_key: $AWS_SECRET_KEY

Dockerrun.aws.json:

{
    "AWSEBDockerrunVersion": 2,
    "containerDefintions": [
        {
            "name": "client", 
            "image": "sathishpskdocker/multi-client",
            "hostname": "client",
            "essential": false,
            "memory": 128
        },
        {
            "name": "server",
            "image": "sathishpskdocker/multi-server",
            "hostname": "api",
            "essential": false,
            "memory": 128
        },
        {
            "name": "worker",
            "image": "sathishpskdocker/multi-worker",
            "hostname": "worker",
            "essential": false,
            "memory": 128
        },
        {
            "name": "nginx",
            "image": "sathishpskdocker/multi-nginx",
            "hostname": "nginx",
            "essential": true,
            "portMappings": [
                {
                    "hostPort": 80,
                    "containerPort": 80
                }
            ],
            "links": ["client", "server"],
            "memory": 128
        }
    ]
}

单独部署部分失败并显示错误: 服务:AmazonECS,代码:ClientException,消息:容器列表不能为空。,类:com.amazonaws.services.ecs.model.ClientException

1 个答案:

答案 0 :(得分:0)

啊,没关系,这是我的错。 dockerrun 配置文件中存在拼写错误,错误地读取 containerDefintions 而不是 containerDefinitions

感谢所有看我问题的人。干杯!

相关问题