AWS EB Deploy展示部署后缺失Dockerrun.aws.json文件

13

我正在尝试将我的应用程序部署到运行Docker的Elastic Beanstalk上,但在部署过程中总是失败,并显示类似于以下的内容:

Activity execution failed, because: cat: /var/app/current/Dockerrun.aws.json: No such file or directory  cat: /var/app/current/Dockerrun.aws.json: No such file or directory  2ba4cc7f9cb0a66db0ab1be8736ba96bffbb1c96a219cf5e888f99a964ae4f2a

据我了解,如果有Dockerfile文件,则不需要Dockerrun.aws.json文件,我也没有看到为什么我们需要它。

我的Dockerfile文件如下:

FROM ubuntu:16.04

# create source directory
RUN rm -rf /var/www
RUN mkdir /var/www

# update and upgrade ubuntu
RUN apt-get update && apt-get upgrade -y

# install nginx
RUN apt-get install -y nginx

# install php 7
RUN apt-get install -y php7.0 php7.0-fpm php7.0-xml php7.0-curl

# install php mysql
RUN apt-get install -y php7.0-mysql

# install php mbstring
RUN apt-get install -y php7.0-mbstring

# install php mcrypt
RUN apt-get install -y php7.0-mcrypt

# install git
RUN apt-get install -y git

# install zip and unzip
RUN apt-get install -y zip unzip 

ADD . /var/www

EXPOSE 80

CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
我们的应用程序源文件与Dockerfile位于同一目录中。 我从http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/docker-singlecontainer-deploy.html中获取了文件结构和Dockerfile示例。
我们使用相同的Dockerfile通过CodeBuild构建应用程序,没有出现错误。在本地,我也可以无问题地构建该应用程序。
非常感谢您提供任何帮助。

1
如果有人遇到相同的问题 - 我联系了AWS支持并发现这实际上不是一个错误,更像是一种信息提示。导致部署失败的原因是nginx配置出了问题。 - Jānis
1个回答

5

如下评论所述,问题可能不在缺失的Dockerrun.aws.json文件中,而在其他方面。

为了确定实际的问题,我必须通过ssh进入此服务器并检查日志。 在我的情况下,问题出在:

eb ssh
less /var/log/eb-docker/containers/eb-current-app/unexpected-quit.log

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接