我有一个用于启动 N 泊坞广告容器(app,redis,mongo,postgre等等)的无花果配置
当我运行fig up
时一切正常。
Name Command State Ports
--------------------------------------------------------------------------
my_mongodb_1 /usr/local/bin/run Up 28017/tcp, 27017/tcp
my_redis_1 /usr/local/bin/run Up 6379/tcp
my_pg_1 /usr/local/bin/run Up 5432/tcp
my_app_1 ... Up 443->443/tcp, 80->80/tcp
但是由于一个不重要的原因,可以关闭其中一个容器。
Name Command State Ports
--------------------------------------------------------------------------
my_mongodb_1 /usr/local/bin/run Up 28017/tcp, 27017/tcp
my_redis_1 /usr/local/bin/run Exit 6379/tcp
my_pg_1 /usr/local/bin/run Up 5432/tcp
my_app_1 ... Up 443->443/tcp, 80->80/tcp
可以配置 supervisord 来监控所有容器并启动已关闭的容器
答案 0 :(得分:6)
您必须将每个程序(容器)配置为不同的文件,并且它们必须位于/etc/supervisor/conf.d/
文件夹中,主管应在该文件夹中查找程序。在你的情况下,我建议:
#It is the /redis.conf
[program:redis]
command= /bin/bash -c "fig up redis"
"fig logs redis"
directory=/path/of/fig_file
autostart=true
autorestart=true
stdout_logfile=/path/to/log/redis.log
redirect_stderr=true
对于pg:
#It is the /pg.conf
[program:pg]
command= /bin/bash -c "fig up pg"
"fig logs pg"
directory=/path/of/fig_file
autostart=true
autorestart=true
stdout_logfile=/path/to/log/pg.log
redirect_stderr=true
其他程序(mongo和app)的配置(mongo.conf和app.conf)相同。
启动计算机或重新启动计算机时,每个程序必须启动。
上面的示例运行容器,您可以保留它,因为您可以使用它的日志。
您可以使用以下方法检查每个程序的状态:
sudo supervisorctl
见:
app RUNNING pid 17036, uptime 0:22:28
mongodb RUNNING pid 17018, uptime 0:22:29
pg RUNNING pid 17030, uptime 0:22:28
redis RUNNING pid 17019, uptime 0:22:29
祝你好运!!
答案 1 :(得分:0)
我会使用Upstart,我有很好的经验。当流程没有进行守护时,Supervisord是最好的。