我已经从 Ubuntu 18 构建了一个映像作为基础映像。它安装了多个服务,例如 nginx、php-fpm 和 ssh。
一切都在正常运行,容器正在创建,我可以访问容器以及与容器相关的一切。
但我必须进入容器内部手动启动 nginx 和 php-fpm。我进行了一些 Google 搜索,找到了 Supervisor。
因此我添加了主管脚本来自动启动服务。但是自从添加了主管后,我的容器一创建就退出了。
在使用命令检查容器日志时docker logs container-name
我收到错误:
/usr/lib/python2.7/dist-packages/supervisor/options.py:297: UserWarning: Supervisord 以 root 身份运行,并且正在默认位置(包括其当前工作目录)中搜索其配置文件;您可能需要指定“-c”参数,以指定配置文件的绝对路径以提高安全性。'Supervisord 以 root 身份运行,并且正在搜索'
在我的Dockerfile中,主管代码如下:
RUN apt-get install -y supervisor
.
.
.
.
COPY ./supervisor/supervisord.conf /etc/supervisor/supervisord.conf
COPY ./supervisor/sshd.conf /etc/supervisor/conf.d/sshd.conf
COPY ./supervisor/nginx.conf /etc/supervisor/conf.d/nginx.conf
COPY ./supervisor/php-fpm.conf /etc/supervisor/conf.d/php-fpm.conf
.
.
.
.
CMD supervisord -n -c /etc/supervisor/supervisord.conf
我在 Google 上搜索了很多次,但还是没能解决这个问题。如果有人能帮我解决这个问题,我将不胜感激。如果需要任何其他信息,请告诉我。
答案1
在你的supervisord.conf中,添加以下内容:
[主管]
nodaemon=真
这指示 Supervisord 在前台启动,而不是作为服务启动。我遇到了同样的问题,但这一行解决了它。
我从这。