मैं इस तरह पर्यवेक्षक के साथ डॉक कंटेनर चलाता हूं:
Dockerfile
CMD ["/run.sh"]
run.sh
#!/usr/bin/env bash
exec supervisord -n
पर्यवेक्षक-serf.conf
[group:job]
programs=serf,producer
[program:serf]
command=/start-serf-agent.sh
numprocs=1
autostart=true
autorestart=unexpected
stopasgroup=true
killasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
start-serf-agent.sh
#!/bin/bash
exec serf agent --join=serf:7946 -tag role=producer
पर्यवेक्षक-servce.conf
[program:producer]
command=/start.sh
numprocs=1
stopasgroup=true
killasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
start.sh
#!/bin/bash
exec /producer --project=${NAME}
निर्माता के रुकने के बाद मुझे मिल गया है:
producer_1 | 2016/02/29 21:59:50 [INFO] serf: EventMemberLeave: 7c4fbc80af97 172.19.0.2
producer_1 | 2016/02/29 21:59:51 INF 1 stopping
producer_1 | 2016/02/29 21:59:51 INF 1 exiting router
producer_1 | 2016-02-29 21:59:51,281 INFO exited: producer (exit status 0; expected)
producer_1 | 2016/02/29 21:59:51 [INFO] agent: Received event: member-leave
लेकिन सर्फ़-एजेंट कंटेनर को चालू स्थिति में रखते हैं। मैं डॉकटर कंटेनर को रोकना चाहता हूं जब निर्माता 0. के साथ अपना काम ठीक से पूरा कर लेता है। मैंने प्रक्रियाओं को एक समूह में शामिल करने की कोशिश की, लेकिन लगता है कि यह काम नहीं करता है। दोस्तों, मैंने क्या छोड़ दिया? कृपया मेरी मदद करें!