0

我试图监视多个码头过程使用主管,但我已经尽我所能,但没有结果。出于某种原因,主管总是说它找不到一个命令docker-compose。我已经指出了我的机器上的docker-compose的bin,但仍然不起作用,如果有人能帮忙,我会很感激。 这是我的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 

回答

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

+0

我执行来自〜/ socialhub当搬运工,compose.yml是监事。是不是目录字段是我想要的输出,或执行将发生的地方? –

+0

这是命令启动的地方。或者你可以改变你的命令为'command = docker-compose -f /home/user/socialhub/docker-compose.yml up mongodb' –

+0

我解散了目录字段,但仍然给出相同的错误[can not find command'/ usr/local/bin/docker-compose up mongodb'] –