我试图使用主管监控多个docker进程,但我已尽力而为但没有结果。由于某种原因,主管总是说它找不到命令docker-compose。我已经指出了我的机器上的docker-compose的箱子,但是,它仍然无法工作,如果有人可以提供帮助,我将不胜感激。 这是我的supervisord.conf文件
; Sample supervisor config file.
;
; For more information on the config file, please see:
; http://supervisord.org/configuration.html
;
; Note: shell expansion ("~" or "$HOME") is not supported. Environment
; variables can be expanded using this syntax: "%(ENV_HOME)s".
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
chmod=0700 ; socket file mode (default 0700)
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
username=socialhub ; (default is no username (open server))
password=socialhub ; (default is no password (open server))
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
username=socialhub ; (default is no username (open server))
password=socialhub ; (default is no password (open server))
[supervisord]
logfile=supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=0 ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=supervisord/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
nocleanup=false ; (don't clean up tempfiles at start;default false)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
; The below sample program section shows all possible program subsection values,
; create one or more 'real' program: sections to be able to control them under
; supervisor.
[program:mongo]
command=/usr/local/bin/docker-compose up mongodb ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
directory=supervisord ; directory to cwd to before exec (def no cwd)
priority=1000 ; the relative start priority (default 999)
autostart=true ; start at supervisord start (default: true)
autorestart=unexpected ; whether/when to restart (default: unexpected)
startsecs=60 ; number of secs prog must stay running (def. 1)
startretries=5 ; max # of serial start failures (default 3)
;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=1 ; max num secs to wait b4 SIGKILL (default 10)
stopasgroup=false ; send stop signal to the UNIX process group (default false)
killasgroup=false ; SIGKILL the UNIX process group (def false)
stdout_logfile=supervisord/ ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=0 ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile=supervisord/ ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=5 ; # of stderr logfile backups (default 10)
stderr_events_enabled=true ; emit events on stderr writes (default false)
; The below sample eventlistener section shows all possible
; eventlistener subsection values, create one or more 'real'
; eventlistener: sections to be able to handle event notifications
; sent by supervisor.
[eventlistener:process_fail]
command=/usr/local/bin/docker-compose rm -f ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
events=PROCESS_LOG_STDERR ; event notif. types to subscribe to (req'd)
buffer_size=10 ; event buffer queue size (default 10)
directory=supervisord/ ; directory to cwd to before exec (def no cwd)
priority=-1 ; the relative start priority (default -1)
autostart=true ; start at supervisord start (default: true)
autorestart=unexpected ; whether/when to restart (default: unexpected)
startsecs=1 ; number of secs prog must stay running (def. 1)
startretries=3 ; max # of serial start failures (default 3)
exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=1 ; max num secs to wait b4 SIGKILL (default 10)
stopasgroup=false ; send stop signal to the UNIX process group (default false)
killasgroup=false ; SIGKILL the UNIX process group (def false)
;user=chrism ; setuid to this UNIX account to run the program
redirect_stderr=false ; redirect proc stderr to stdout (default false)
stdout_logfile=NONE ; stdout log path, NONE for none; default AUTO
答案 0 :(得分:1)
您使用的目录不正确
directory=supervisord
您应该使用docker-compose.yml
文件所在目录的完整路径。
修改 - 1:
所以我不得不为你提出更深入的问题。在版本3.0b2
之前,命令空间无法正确传递。
如果升级到3.0.1
或更高版本,带空格的命令可以正常工作。在您的版本中,它充分利用了命令并尝试将其定位为文件,我们为什么会看到command not found
错误
您可以使用pip
pip install supervisor==3.3.3
如果由于某种原因无法升级您的主管(我强烈建议他们最近有XML-RPC漏洞允许命令执行),那么您需要创建一个shell脚本
<强> start_mongo.sh 强>
#!/bin/bash
cd /home/user/socialhub/
exec docker-compose up
确保chmod +x start_mongo.sh
并将命令更改为/path/to/start_mongo.sh