我正在使用Play框架开发Web应用程序,并且我使用单个docker容器和负载均衡器在AWS Elastic Beanstalk上运行它。通常,一切运行正常,但是当我重建整个环境时,我收到以下错误:
实例上的命令失败。返回码:6输出:(TRUNCATED)...在/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf:11 nginx:[emerg] host找不到上游" docker&#34 ;在/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf:24 nginx:配置文件/etc/nginx/nginx.conf测试失败。
当我登录EC2时,我可以看到没有Docker镜像正在运行,因此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
任何想法可能是什么问题或在哪里检查更多细节?
答案 0 :(得分:3)
我有同样的问题。 elasticbeanstalk-nginx-docker-proxy.conf
指的是proxy_pass http://docker
,但缺少对此的定义。你需要添加像
# List of application servers
upstream docker {
server 127.0.0.1:8080; # your app
}
(确保它在server
指令之外。)
答案 1 :(得分:-1)
我刚刚遇到了同样的挑战(将更新的Docker镜像部署到Elastic Beanstalk)。这取决于你想要做什么,但我发现的是(一旦你有eb cli设置)你可以使用eb deploy
命令推出你的代码更改而不用担心图像在所有
当然,您仍然希望将您的映像推送到您的仓库以便与其他开发人员共享(或与其他开发人员一起),或者如果您确实因某种原因需要更改环境配置...但是如果您&#39;只是希望将代码推送到eb deploy
不幸的是,就错误的具体情况而言,我可以在那里提供很多帮助。祝你好运!