Дженкинс не запускается в докере (включая Dockerfile)

Вы можете использовать этот шаблон:

^\d+\s:

Если вы можете иметь более одного места после него следующим образом:

1   :
10  :
100 :

Используйте этот шаблон:

^\d+\s+:

Убедитесь, что у вас установлен обход : enter image description here [/g1]

0
задан Display name 23 February 2019 в 12:15
поделиться

2 ответа

Я смог заставить это работать, только запустив Jenkins в части CMD, но мне нужно было запустить Jenkins до Flask, так как Flask будет работать непрерывно и следующая команда никогда не будет выполнена:

Не сделал работа:

CMD python3 /app/main.py; sudo /etc/init.d/jenkins start

Это действительно работает:

CMD sudo /etc/init.d/jenkins start; python3 /app/main.py

РЕДАКТИРОВАТЬ:

Я полагаю, что поместить его в часть RUN не будет работать, потому что контейнер будет собирать, но не сохранять запущенные сервисы. Я не уверен, что контейнеры могут быть сохранены и загружены такими запущенными процессами, но я могу ошибаться. Буду признателен за разъяснения, если так.

Кажется, что должно быть в RUN, поэтому, если кто-нибудь знает, почему это не сработало или какие-то передовые практики, будет также признателен за информацию.

0
ответ дан Display name 23 February 2019 в 12:15
поделиться

У вас есть несколько моментов, о которых вам нужно знать:

  1. Нет необходимости использовать sudo, так как по умолчанию пользователь уже root.
  2. Чтобы запустить несколько сервисов в одном и том же контейнере, вам необходимо использовать любой вид менеджера сервисов, например Supervisord . Jenkins не работает, потому что CMD является основной точкой входа для вашего контейнера, поэтому должна работать только колба. Проверьте следующую ссылку , чтобы узнать, как запустить несколько служб в Docker.

    RUN будет выполняться только во время процесса сборки, в отличие от CMD, который будет выполняться каждый раз, когда вы запускаете контейнер из этого образа.

  3. Объедините все линии RUN вместе, насколько это возможно, чтобы минимизировать слои сборки, которые приводят к уменьшению изображения докера.

Относительно использования этого:

CMD python3 /app/main.py; sudo /etc/init.d/jenkins start

Она не работает для вас, потому что эта команда python3 /app/main.py не работает как фоновый процесс, поэтому эта команда sudo /etc/init.d/jenkins start не будет выполняться до тех пор, пока предыдущая команда выполнена.

0
ответ дан Mostafa Hussein 23 February 2019 в 12:15
поделиться
Другие вопросы по тегам:

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