Я смог заставить это работать, только запустив 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
, поэтому, если кто-нибудь знает, почему это не сработало или какие-то передовые практики, будет также признателен за информацию.
В этой статье Sun о настройке сборки мусора с помощью виртуальной машины Java 5.0 должны быть довольно хорошие определения и объяснения всего, что вы ищете; Я не думаю, что с 5.0 по 6.0 что-то изменилось в этом вопросе
Также есть этот технический документ по Управление памятью в виртуальной машине Java HotSpot .
Дополнительная документация Sun , технических статей и официальных документов .
Довольно недавний: http://www.ibm.com/developerworks/java/library/j-nativememory-linux/
Я считаю, что Технический документ Sun по управлению памятью предлагает хороший обзор.
Последний раздел предлагает полезные ссылки для более глубокого изучения областей, представляющих особый интерес.
Вот список ресурсов Я записал. Некоторые из них объясняют, как работает куча / сборка мусора, а некоторые содержат подробные сведения о том, как все настроить.
IBM
Sun
Другое
Также см. Эти сеансы JavaOne для JVM GC. (включая воспроизведение видео)
ОБНОВЛЕНИЕ:
Oracle изменила содержимое JavaOne как платное. См. эту статью для сборщика мусора G1.