【发布时间】:2021-12-19 09:03:45
【问题描述】:
我对 Docker 和 Supervisor 都是新手,但是我有一个 larvel 应用程序在工作,需要在其中运行三个单独的队列工作程序,所以我认为一个带有 Supervisor 的容器是个好主意......但是,尽可能多的容器上升。它似乎从未真正安装主管。我对它进行了炮轰,但它却不见了。我可以手动安装它就好了,但是当我运行我的 supervisord.config 时,我重复了同样的错误,似乎无法弄清楚为什么......任何建议都将不胜感激!
Dockerfile;
FROM ubuntu:latest
RUN \
apt-get update && \
apt-get install -y supervisor && \
rm -rf /var/lib/apt/lists/* && \
sed -i 's/^\(\[supervisord\]\)$/\1\nnodaemon=true/' /etc/supervisor/supervisord.conf
# Copy config file over
COPY /etc/supervisor/supervisord.conf /etc/supervisor/supervisord.conf
# Run Supervisor
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
Supervisord.conf;
[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
user=root
nodaemon=true
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:listen
directory=/tmp/
autostart=true
autorestart=true
numprocs=1
stopwaitsecs=10800
我现在已经从 supervisord.conf 中删除了另外两个程序,直到我至少让其中一个程序正常工作。唯一的区别是另外两个在命令行中为 laravel 设置了一个队列。
编辑;忘了说,我从 Supervisor 那里得到的错误是“退出状态 1”三次,因为 Supervisors 明显重启默认值,然后它致命的退出并停止。
【问题讨论】:
-
您可以在不涉及 supervisord 的情况下在单独的容器中运行工作人员吗?
标签: laravel docker supervisord