4

Я разрабатываю веб-приложение с платформой Play, и я запускаю его на AWS Elastic Beanstalk, используя один докер-контейнер и балансировщик нагрузки. Как правило, все работает нормально, но когда я восстановить всю окружающую среду, я получаю следующее сообщение об ошибке:Развертывание на AWS Elastic Beanstalk с Docker не работает

Command failed on instance. Return code: 6 Output: (TRUNCATED)... in /etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf:11 nginx: [emerg] host not found in upstream "docker" in /etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf:24 nginx: configuration file /etc/nginx/nginx.conf test failed.

При входе в EC2 я вижу, что нет докер изображения не работает, и поэтому сервер Nginx не может начаться. Я не вижу никакой другой ошибки в журналах (или, может быть, я не знаю, где искать). Странно то, что одна и та же версия отлично работала, прежде чем восстанавливать среду.

Я использую следующий Dockerfile для развертывания:

FROM java 
COPY <app_folder> /opt/<app_name> 
WORKDIR /opt/<app_name> 
CMD [ "/opt/<app_name>/bin/<app_name>", "-mem", "512", "-J-server" ] 
EXPOSE 9000 

Любые идеи, что проблема может быть или где проверить для получения более подробной информации?

ответ

-1

Я только что работал над тем же вызовом (развертывание обновленного изображения докеров на эластичном бобовом стебле). И это зависит от того, что вы хотите сделать точно, но я выяснил, что (как только у вас установлена ​​настройка eb cli) вы можете просто использовать команду eb deploy, чтобы вытеснить изменения кода, не беспокоясь о изображении вообще.

Предоставлено, что вы все равно хотите подтолкнуть свое изображение к своему репо для совместного использования (с другими разработчиками), или если вам действительно нужно изменить конфигурацию среды по какой-то причине ... но если вы просто ищете нажимать код посмотреть на eb deploy

Что касается особенностей вашей ошибки, к сожалению, я не могу помочь. Удачи!

1

У меня была эта проблема. elasticbeanstalk-nginx-docker-proxy.conf относится к proxy_pass http://docker, но определение этого отсутствует. Вам нужно добавить что-то вроде

# List of application servers 
    upstream docker { 
     server 127.0.0.1:8080; # your app 
    } 

(Убедитесь, что это за пределами server директивы.)

Смежные вопросы