【问题标题】:Running Supervisord on Ubuntu in Docker在 Docker 中的 Ubuntu 上运行 Supervisord
【发布时间】:2015-03-10 16:29:28
【问题描述】:

我正在尝试使用主管在启动 docker 容器时启动 nginx 和 postgresql。使用以下 Dockerfile 和 supervisord.conf 文件,上述应用程序会启动,但稍后会停止。有谁知道可能出了什么问题? stderr 或系统日志文件没有错误消息。

Dockerfile:

FROM ubuntu:14.04
RUN mkdir -p /var/www /var/pgsql/data /var/log/pgsql /var/log/nginx
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY nginx.conf /etc/nginx/sites-enabled/default
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install curl wget supervisor postgresql postgresql-contrib libpq-dev llvm gcc g++ python3-pip python2.7 pytho
n2.7-dev python-pip git nginx nodejs openjdk-7-jdk build-essential
RUN apt-get -y clean all
EXPOSE 80 8000 8080
CMD ["/usr/bin/supervisord"]

supervisord.conf:

[supervisord]
nodaemon=true

[program:nginx]
command=/bin/bash -c "exec /usr/sbin/nginx -DFOREGROUND"
stdout_logfile=/var/log/nginx/%(program_name)s.log
stderr_logfile=/var/log/nginx/%(program_name)s.log

[program:postgresql]
command=/bin/bash -c "exec /usr/lib/postgresql/9.3/bin/postgres -D /var/pgsql/data"
stdout_logfile=/var/log/pgsql/%(program_name)s.log
stderr_logfile=/var/log/pgsql/%(program_name)s.log

【问题讨论】:

  • 我不完全确定,但是,您可以告诉 supervisord 使用日志,在 [supervisord] 下的 /etc/supervisord.conf 中使用以下示例值 logfile=/var/log/ supervisord.log logfile_maxbytes=50MB logfile_backup=10 loglevel=error。这可能有助于调试。

标签: postgresql ubuntu nginx docker supervisord


【解决方案1】:

你应该:

  1. 在前台使用-noption运行supervisord。
  2. Dockerfile 中使用ENTRYPOINT 而不是CMD

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多