首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >supervisor.sock拒绝在码头集装箱中连接

supervisor.sock拒绝在码头集装箱中连接
EN

Stack Overflow用户
提问于 2017-05-03 07:13:59
回答 2查看 6.7K关注 0票数 10

supervisor.sock拒绝在码头集装箱中连接

我试过用supervisorctl :/var/run/Superor.sock拒绝连接Overlayfs不使用unix域套接字。来修复它

但是,它仍然不能在我的debain服务器上工作。

这是我的docker_supervisor.conf

代码语言:javascript
运行
复制
FROM python:2.7

RUN pip install supervisor

RUN mkdir /app
WORKDIR /app

COPY docker_supervisor.conf /app

RUN supervisord -c docker_supervisor.conf

CMD ["supervisorctl", "-c", "docker_supervisor.conf", "restart", "apiapp:"]

这是docker_supervisor.conf

代码语言:javascript
运行
复制
[unix_http_server]
file=/var/run/docker_supervisor.sock
chown=root:root
chmod=0777

[supervisord]
logfile=/var/run/docker_supervisor.log
pidfile=/var/run/docker_supervisor.pid

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

[supervisorctl]
serverurl=unix:///var/run/docker_supervisor.sock

[group:apiapp]
programs=api_web

[program:api_web]
user=root
directory=/app
command=python echo "OKOKOK"
代码语言:javascript
运行
复制
sudo docker build --no-cache -t test .
Successfully built c3b4061fc9f7


sudo docker run -v $(pwd):/app test
unix:///var/run/docker_supervisor.sock refused connection

我试过执行

代码语言:javascript
运行
复制
sudo docker run --tmpfs /var/run -v $(pwd):/app test

但是它得到了相同的结果“unix://var/run/docker_visor.sock拒绝连接”

如何修复它,让主管在集装箱中运行?

EN

回答 2

Stack Overflow用户

发布于 2019-07-15 10:21:15

我只是遇到了同样的问题,并通过将套接字文件路径更改为/dev/shm/supervisor.sock来解决它。

supervisord.conf文件现在看起来如下所示:

代码语言:javascript
运行
复制
[unix_http_server]
file=/dev/shm/supervisor.sock                 ; <-- change it here
chmod=0700

[supervisord]
nodaemon=true                                 ; <-- add nodaemon for Docker
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
childlogdir=/var/log/supervisor

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

[supervisorctl]
serverurl=unix:///dev/shm/supervisor.sock     ; <-- and change it here too

[program:app]
...

注意:建议将supervisorctl-c参数一起使用,以确保它正在读取正确的配置文件。否则,它可能会返回到一个默认的套接字文件中,并尝试使用默认的套接字文件/var/run/supervisor.sock进行连接,该文件无法工作。

编辑-添加了更多值得关注的内容

注2:在使用客户端之前,确保Supervisor服务器正在运行。

代码语言:javascript
运行
复制
# Start server
supervisord -c /path/to/supervisor.conf
# Then use client
supervisorctl -c /path/to/supervisor.conf status

注3:确保套接字文件存在。如果没有,您可以创建它,例如,如下所示(参考文献):

代码语言:javascript
运行
复制
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/dev/shm/supervisor.sock')"

注4:请记住,也可以使用TCP而不是Unix套接字文件。

代码语言:javascript
运行
复制
[inet_http_server]
port = 127.0.0.1:9001

[supervisorctl]
serverurl = http://127.0.0.1:9001

; Rest of the supervisor.conf file...

参考文献:

票数 0
EN

Stack Overflow用户

发布于 2021-08-31 21:18:56

也值得检查一下主管是否真的在运行

代码语言:javascript
运行
复制
supervisord

运行此操作将尝试并启动监督程序,如果已在运行,则会引发错误。对我来说,这总是一种陈腐的关系,破坏了主管

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43753500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档