соло шеф-повара с докером: Препятствуйте тому, чтобы сервисы запустились во время сборки

Я пытаюсь снова использовать существующие поваренные книги в контейнерах докера, но большинство рецептов запустит сервис во время выполненного клиента шеф-повара (например, кот, apache2). Когда соло шеф-повара работает во время создания изображений, которое просто приведет к сбою выполненный шеф-повар.

Как я могу препятствовать тому, чтобы поваренная книга запустила сервис?

Я использую следующий Dockerfile

FROM jr42/chef-solo-centos

ADD chef /chef
RUN cd /chef && /opt/chef/embedded/bin/berks vendor /chef/cookbooks
RUN chef-solo -N mynode -c /chef/solo.rb -j /chef/solo.json

кот в моем runbook (solo.json):

{
  "tomcat": {
    "base_version": ""
  },
  "run_list": [ "recipe[tomcat]" ]
}

и Berksfile:

source "https://supermarket.getchef.com"
metadata
cookbook 'tomcat'
1
задан 23 September 2014 в 18:12
1 ответ

Похоже, что вы используете куки с неизменяемыми атрибутами, и по умолчанию куки-книга tomcat работает с базовым экземпляром tomcat "по умолчанию".

См. объявленный ресурс здесь и настройку атрибута здесь.

Вы должны иметь возможность обновить свой solo.json, чтобы переопределить этот атрибут:

{
  "tomcat": {
    "base_version": "",
    "run_base_instance": false
  },
  "run_list": [ "recipe[tomcat]" ]
}

И у вас не должно быть автоматического запуска сервиса.

Или же вы можете посмотреть проектную документацию chef-container и посмотреть, подходит ли это для лучшей процедуры сборки вашего контейнерного приложения.

.
0
ответ дан 4 December 2019 в 08:31

Теги

Похожие вопросы