【发布时间】:2018-07-27 20:43:50
【问题描述】:
我正在尝试在亚马逊 ECS 上运行 Docker 映像。我正在使用一个启动 shell 脚本的命令来启动程序:
CMD ["sh","-c", "app/bin/app start; bash"]
为了启动它,因为由于某种原因,当我在后台运行应用程序(elixir/phoenix 应用程序)时,它会立即崩溃,但如果我在前台运行它就可以了。如果我在本地以这种方式运行它,一切正常,但是当我尝试在集群中运行它时,它会关闭。请帮忙!!
【问题讨论】:
-
在您的开发环境的终端窗口中,如果您运行
app start,您会立即返回一个shell 提示符,还是服务器会一直运行直到您使用control-C 停止它? -
通常,
start用于在后台启动某些内容。脚本是否提供了不同的子命令,例如run,以将进程保持在前台? -
当我使用 start using “docker run -d app” 在我的终端中运行应用程序发布时,它会立即崩溃,让我没有可恢复的日志或任何正在运行的容器。如果我在 Dockerfile 中的 CMD 为 “sh”,”-c”,”app/bin/app start; 运行上面相同的命令; bash” 它可以工作,但如果 Dockerfile 中的 CMD 只是 app/bin/app start
-
所以 sh -c 方法在本地工作,但是当我尝试在 ECS 中运行它时崩溃
标签: shell amazon-web-services docker elixir amazon-ecs