Это на виртуальной машине Ubuntu 14.04 LTS с Docker, и я подозреваю, что это respawn
является причиной моей проблемы, но я не уверен в идеальном решении.
Текущий сценарий upstart ( cat /etc/init/dockersuitecrm.conf
)
description "Start docker containers"
author "Batman"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start
end script
Это «работает» в том, что myapp
живой и отзывчивый, но /sbin/init
занимает весь процессор, когда я контролирую с htop
. Если я удаляю запись из upstart ( sudo rm /etc/init/dockersuitecrm.conf
) и вручную запускаю и запускаю SSH, docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start
я не вижу процессора на 100% и, как и прежде myapp
, снова жив и отзывчив.
Так что я подозреваю, что способ запуска docker-compose выше неверен. Какой правильный способ запуска docker-compose
всегда работает без ручного вмешательства?
РЕДАКТИРОВАТЬ: не должно иметь значения, но /usr/bin/myapp -> /home/batman/dockerapps/myapp
как символическая ссылка.
docker-compose start
.
script
блок. Может быть, это является частью проблемы? У меня есть chdir /usr/bin/myapp/
и на следующей строке exec docker-compose up
вместо.
docker-compose up -d
respawn
команды в сценарии.