Aurelia, Docker, Nginx, AWS Elastic Beanstalk, показывающий 502 плохих ворот - PullRequest
0 голосов
/ 17 января 2019

Я развернул приложение Aurelia в AWS Elastic Beanstalk через AWS ECR и столкнулся с некоторыми трудностями.Docker-контейнер при локальном запуске работает отлично (см. Ниже для Dockerfile).

FROM nginx:1.15.8-alpine

COPY dist /usr/share/nginx/html

Развертывание работает довольно хорошо, однако, когда я перехожу к конечной точке, предоставленной AWS http://docker-tester.***.elasticbeanstalk.com/, я получаю 502 Bad Gateway nginx/1.12.1.

Я не могу понять, в чем может быть проблема.Рассматриваемый контейнер Docker представляет собой простой пример Hello World, созданный с помощью команды au new;В этом нет ничего особенного.

Ниже приведен мой файл Dockerrun.aws.json

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "***.dkr.ecr.eu-central-1.amazonaws.com/tester:latest",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "8080"
    }
  ],
  "Logging": "/var/log/nginx"
}

Моя конфигурация Elastic Beanstalk довольно мала с типом экземпляра EC2 t2.micro.Я использую бесплатный уровень как возможность для обучения.

Я очень ценю любую помощь или ссылки на некоторые материалы, которые могут указывать в правильном направлении.

1 Ответ

0 голосов
/ 18 января 2019

Это не имеет ничего общего с вашим приложением aurelia. Вам не хватает EXPOSE заявления (что является обязательным) в вашем Dockerfile. Вы можете изменить это следующим образом.

FROM nginx:1.15.8-alpine

EXPOSE 80

COPY dist /usr/share/nginx/html

Если вы попытаетесь запустить его без EXPOSE, вы получите ошибку

ERROR: ValidationError - The Dockerfile must list ports to expose on the Docker container. Specify at least one port, and then try again.

Вам следует протестировать приложение, прежде чем отправлять его в ElasticBeanstalk

install eb cli (при условии, что у вас есть pip, если нет, то вам также нужно установить его)

pip install awsebcli --upgrade --user

затем инициализируйте локальный репозиторий для развертывания

eb init -p docker <application-name>

и вы можете проверить это

eb local run --port <port-number>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...