- 22, Oct 2024
- #1
Я видел много репозиториев с образами Docker и думаю (поправьте меня, если мои догадки ошибочны), что проекты, обрабатывающие образ Docker с несколькими тегами, можно сгруппировать в три группы:
- Dockerfiles с разными именами в одном каталоге.
- Dockerfiles с одинаковым именем (т. е. «Dockerfile») в разных каталогах.
- Dockerfiles с одинаковым именем (т. е. «Dockerfile») в разных ветках.
Я просмотрел страницу документации Docker, но нет никаких предложений о том, как управлять несколькими изображениями тегов. Я не ищу субъективного ответа. Конечно, любой совет будет оценен по достоинству, но я хочу знать плюсы и минусы каждой из трех возможностей.
Конечно, есть вероятность, что я ничего не понимаю в том, как следует развертывать образы докеров. В этом неудачном случае, пожалуйста, будьте милосердны и укажите мне правильное направление.
Тематическое исследование
Я хотел задать общий вопрос, но понял, что, возможно, он слишком широк. По этой причине я объясняю здесь, каков мой случай, надеясь, что это может помочь немного больше в том, чего я хотел достичь и что я сделал сейчас (этот вопрос касается только части того, чего я хотел достичь).
Я хочу разработать автоматическую сборку Docker Hub, связанную с репозиторием Git Hub. Изображения относятся к LaTeX в Ubuntu. Первая сборка с тегами
1.3.1-develop-base
, starts from Ubuntu 18.04 and comes with 2.3-full
. Еще одна сборка с тегом 1.0-base
, starts from the build tagged develop-base
и поставляется с full
. Another two builds, tagged base
и base
, will start from the respectively builds without 'develop' and will come with writing and visualization tools. All the builds will probably have some semantic versioning system.
То, что я сделал прямо сейчас, это реализовать
base
and full
через два разных файла Docker в два разных каталога в одном репозитории Git Hub. Всякий раз, когда тег base
or full
создается/перемещается, запускается соответствующая сборка. В этой реализации есть проблема: если я переместил тег base
, the image develop-full
построен правильно, но все изображения, которые от него зависят, не создаются заново, и мне приходится запускать их вручную. Я подумал, что нужно иметь ветку для каждого помеченного изображения (с соответствующими автоматическими сборками, запускаемыми при каждом новом нажатии на эту ветку) и систему тегов для отслеживания номера версии (с соответствующими автоматическими сборками, запускаемыми при каждом новом нажатии на эту ветку). ярлык). Теги будут develop-base
, texlive-full
, base
, etc. for each latest version and with semantic versioning for each version, including the latest, i.e. full
, texlive-base
, base
, и т.д. В последнем случае при автоматическом запуске сборки, вероятно, придется обрабатывать регулярное выражение для автоматической маркировки изображений номером версии.
Я понимаю, что мой вопрос не очень связан с тем, чего я хотел достичь, но я хочу научиться ходить, прежде чем пытаться бегать. Таким образом, я хочу понять, когда и почему следует выбирать тот или иной способ размещения репозитория Docker Hub с несколькими образами и какие это способы. Сам проект изображений LaTeX, который, возможно, может показаться вам очень наивным, заключается в глубоком понимании того, как работают docker, docker Hub, Docker Cloud, Docker Compose и т. д. работа.
#docker #dockerfile #learning