使用Docker在AWS Elastic Beanstalk上部署失败

Vla*_*mir 5 nginx amazon-web-services playframework docker amazon-elastic-beanstalk

我正在使用Play框架开发一个Web应用程序,并且我使用一个docker容器和一个负载均衡器在AWS Elastic Beanstalk上运行它.通常,一切运行正常,但是当我重建整个环境时,我收到以下错误:

命令在实例上失败.返回码:6输出:(TRUNCATED)...在/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf:11 nginx:[emerg]主机在/ etc /中的上游"docker"中找不到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
Run Code Online (Sandbox Code Playgroud)

任何想法可能是什么问题或在哪里检查更多细节?

jrc*_*jrc 5

我有同样的问题。elasticbeanstalk-nginx-docker-proxy.conf指的是proxy_pass http://docker但缺少定义。你需要添加类似的东西

    # List of application servers
    upstream docker {
        server 127.0.0.1:8080;  # your app
    }
Run Code Online (Sandbox Code Playgroud)

(确保它在server指令之外。)


Bri*_*ald -1

我刚刚解决了同样的挑战(将更新的 Docker 映像部署到 Elastic Beanstalk)。这取决于您具体想要做什么,但我发现(一旦您安装了 eb cli 设置)您就可以使用该eb deploy命令来推送代码更改,而根本不用担心图像。

当然,您仍然希望将图像推送到存储库以进行共享(与其他开发人员),或者如果您实际上需要出于某种原因更改环境配置......但如果您只是想推送代码,请查看进入eb deploy

不幸的是,就您的错误的具体情况而言,我无法提供太多帮助。祝你好运!