Вы можете использовать этот шаблон:
^\d+\s:
Если вы можете иметь более одного места после него следующим образом:
1 :
10 :
100 :
Используйте этот шаблон:
^\d+\s+:
Убедитесь, что у вас установлен обход : [/g1]
Я смог заставить это работать, только запустив 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
, поэтому, если кто-нибудь знает, почему это не сработало или какие-то передовые практики, будет также признателен за информацию.
У вас есть несколько моментов, о которых вам нужно знать:
sudo
, так как по умолчанию пользователь уже root. CMD
является основной точкой входа для вашего контейнера, поэтому должна работать только колба. Проверьте следующую ссылку , чтобы узнать, как запустить несколько служб в Docker. blockquote>
RUN
будет выполняться только во время процесса сборки, в отличие отCMD
, который будет выполняться каждый раз, когда вы запускаете контейнер из этого образа.
RUN
вместе, насколько это возможно, чтобы минимизировать слои сборки, которые приводят к уменьшению изображения докера. Относительно использования этого:
CMD python3 /app/main.py; sudo /etc/init.d/jenkins start
Она не работает для вас, потому что эта команда python3 /app/main.py
не работает как фоновый процесс, поэтому эта команда sudo /etc/init.d/jenkins start
не будет выполняться до тех пор, пока предыдущая команда выполнена.