Недавно я установил Marathon, Mesos и Docker на нескольких моих узлах. Все работает хорошо, за исключением того, что я столкнулся с проблемой при запуске контейнеров Docker. В частности, когда Marathon выполняет задачу, которая запускает контейнер Docker, marathon добавляет /bin/sh -c ' '
в качестве команды Docker по умолчанию. Это приводит к тому, что мои контейнеры запускаются, а затем немедленно закрываются (я вижу, что они были запущены с помощью docker ps -a
)
Я просмотрел документацию Mesos, в которой говорится:
В настоящее время образ докера поддерживает наличие точки входа и / или команды по умолчанию.
Чтобы запустить образ докера с помощью команды по умолчанию (например, образ запуска докера), значение CommandInfo не должно быть установлено. Если значение установлено, оно переопределит команду по умолчанию.
Чтобы запустить образ докеры с определенной точкой входа, параметр оболочки CommandInfo должен иметь значение false. Если для параметра оболочки установлено значение true, Docker Containerizer будет запускать команду пользователя, заключенную в / bin / sh -c, которая также станет параметрами для точки входа в образ.
Это хорошая информация (я вижу ожидаемое поведение от Mesos), но я не вижу в Marathon опции для отключения оболочки CommandInfo.
У меня вопрос:
- Как установить для параметра оболочки CommandInfo (в Marathon или Mesos) значение false? Где это нужно установить?
Когда я запускаю свой ghost-blog-test
образ на машине (используя стандартную команду docker run
), он использует /entrypoint.sh npm s
в качестве команды по умолчанию. Я бы хотел такого же поведения при использовании Mesos + Marathon.
Заранее спасибо!