我制作了一个很小的Phoenix Framework应用程序(运行时得到的内容仅作了少许修改:mix phoenix.new)。我一直在尝试将其部署在Docker容器中。在容器运行时,它可以正常工作,但始终会在启动后一分钟内消失,并显示消息“已杀死”。我是否提出要求似乎并不重要。我尝试观看docker事件,并得到以下信息:
$ docker events
2016-04-09T16:24:02.538602484-04:00 container create
ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f
(image=gcr.io/myprojectname/myapp:v2, name=amazing_bhabha)
2016-04-09T16:24:02.550438045-04:00 container attach
ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f
(image=gcr.io/myprojectname/myapp:v2, name=amazing_bhabha)
2016-04-09T16:24:02.599731705-04:00 network connect
c64a1439c8095f82ab0fea5c48b563c8aac7256d6064b3189b0bc8d052d69fe4
(name=bridge, type=bridge, container=ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f)
2016-04-09T16:24:02.600048755-04:00 container start
ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f
(image=gcr.io/myprojectname/myapp:v2, name=amazing_bhabha)
2016-04-09T16:24:53.858352733-04:00 container die
ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f
(name=amazing_bhabha, image=gcr.io/myprojectname/myapp:v2)
2016-04-09T16:24:53.930349810-04:00 network disconnect
c64a1439c8095f82ab0fea5c48b563c8aac7256d6064b3189b0bc8d052d69fe4
(container=ef45a768723c64125c717a7b40ee7513e477f27339c6266bd28cc3084c60e11f, name=bridge, type=bridge)
Run Code Online (Sandbox Code Playgroud)
我对Docker和Elixir还是很陌生,所以我不确定我还可以做哪些其他研究。这里有一个类似的听起来的问题:我运行了一个docker容器,但几分钟后,它被自己杀死了
但是我不确定OP是否或如何解决它。预先感谢您的任何提示。请告知我是否还有其他可以帮助您的信息。
编辑1:我了解到docker ps -a实际上会告诉我退出代码,该代码在其他地方没有找到。我所有的容器都退出并显示137错误代码。我的Docker VM具有4GB内存,因此我尝试使用-m = 3g标志运行,但得到了相同的结果。我也没有看到Windows进程资源管理器中的任何进程接近3GB。
编辑2:我对容器的内存限制进行了更多研究,发现容器的生存时间与我允许的内存量直接相关。因此,我创建了一个全新的项目(mix --no-brunch --no-ecto phoenix.new),复制了Dockerfile,并尝试构建和运行它。它给了我完全相同的结果。这使我相信我的问题出在我的Dockerfile或我如何运行该应用程序中。
Dockerfile:
FROM marcelocg/phoenix
MAINTAINER Arcaten
RUN echo $PWD
#Copy source
ADD . ./
#Get dependencies
RUN yes | mix local.hex
RUN yes | …Run Code Online (Sandbox Code Playgroud)