Docker Alpine Supervisor unix:///run/supervisord.sock文件不存在

3
我使用docker和docker-compose来处理镜像,并创建了一个基于alpine 3.10的镜像,其中包含我的应用程序和supervisor(根据文档3.3.5)。但是,在我进入容器并启动supervisorctl后,我遇到了错误。有人能帮助我解决这个问题吗?
从img中获取卷。
volumes:
    - ./php-consume/supervisord.conf:/etc/supervisord/conf.d/supervisord.conf

我的supervisord.conf

[program:messenger-consume]
command=php /var/www/symfony/bin/console messenger:consume success andraction_parse_row_success --limit=100
numprocs=2
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d

[supervisord]
nodaemon=true

当我进入容器并运行supervisorctl时。
ivan@ivan-laptop:~/hosts/docker-symfony$ docker exec -it bc6df01db4db ash
/var/www/symfony # supervisorctl 
unix:///run/supervisord.sock no such file

你能在问题中包含你的 Dockerfile 吗?在容器内尝试启动和停止服务有点不寻常,通常如果你需要运行多个东西,将它们运行在单独的容器中是更好的做法。 - David Maze
1
你找到解决方案了吗? - db306
1个回答

2

您没有supervisorctl部分。 请确保已将supervisors配置文件复制到/etc/suervisorsd.conf中。 DockerFile

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY supervisord.conf /etc/supervisord.conf

或者使用参数启动它。

DockerFile

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

这是我的典型的supervisord.conf配置:
[unix_http_server]
file=/dev/shm/supervisor.sock
chmod=0700

[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
childlogdir=/var/log/supervisor

[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///dev/shm/supervisor.sock

这帮助我使用 supervisorctl status 命令。在我的 Docker 中,位于 /var/run/ 的套接字不接受连接。 - mixo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接