如何使用supervisord将Docker容器正确部署到Jelastic

时间:2017-01-21 14:49:15

标签: docker jelastic

我在ubuntu上使用虚拟laravel php应用程序构建了简单的Docker镜像。 我使用supervisord启动nginx和php-fpm。 到目前为止,一切都很好,在我的本地机器或任何存在docker可执行文件的地方都能正常工作。

我正在尝试在Jelastic环境中运行相同的图像,但我遇到了supervisord错误:

2017-01-21 14:34:30,283 INFO exited: cron (exit status 1; not expected) 
2017-01-21 14:34:30,333 INFO exited: fpm (exit status 78; not expected) 
2017-01-21 14:34:32,336 INFO spawned: 'cron' with pid 1216 
2017-01-21 14:34:32,338 INFO spawned: 'fpm' with pid 1217 
2017-01-21 14:34:32,341 INFO exited: cron (exit status 1; not expected) 
2017-01-21 14:34:32,386 INFO exited: fpm (exit status 78; not expected)

我已经联系过支持,他们告诉我cron和php-fpm因为systemd已经在运行,所以他们登录到我的节点,修复了一些东西,现在一切都在运行。

我想知道这是如何与文档中的“Native Docker™©support”™标语保持一致。

无论如何,我已经设置了新的示例应用以进行支持调查(图片 - https://hub.docker.com/r/rozhok/jelastic-laravel-docker/来源 - https://github.com/rozhok/jelastic-laravel-docker),尝试部署它,一切都工作正常。

所以我的问题是:

  1. 如何在部署到Jelastic时避免supervisord和systemd冲突。请记住,我希望所有环境都有相同的图像,我不想为Jelastic准备“特殊”图像。

  2. 我们应该知道其他任何警告吗?也许应该更多地描述Docker支持。

1 个答案:

答案 0 :(得分:2)

您似乎只需要在Dockerfile中添加一行: RUN systemctl禁用php-fpm 这将禁止php-fpm从你的systemd进程中生成,你的进程肯定会由主管启动,这将使图像兼容Jelastic和你本地机器上运行的docker主机。

相关问题