Работая с докером приходится изучать и изучать новые фишки, штучки, хаки и прочие делишки. Сейчас стала задача, так как используется докер, необходимо для ускорения разворачивания среды использовать готовые свои образа, но с наличием версий.
Собственно версии задаются через опцию tag в докере и ничего военного, но если использовать версии, к примеру demi4/mysql:1.0.0 – то при таком подходе не получится в Docker файле использовать флаг latest для собираемого образа и использование строки:
1 |
FROM demi4/mysql |
приведет к ошибке, так как – если не указывается версия, то используется latest, а такой тег не создавался, в итоге ошибка.
Что бы одним махом стрелять двух зайцев в такой ситуации, необходимо прибегнуть к одной хитрости и сделать образ, назначить ему tag и после этого пушить в репу докера
1 2 3 4 |
docker build . docker tag 657ebe966b9a demi4/mysql:1.0.1 docker tag demi4/mysql:1.0.1 demi4/mysql docker push demi4/mysql |
Такая хитрость приводит к тому что при docker push в репозиотрий будет отправены и образ с версией 1.0.1 и latest (без указания версии). Соответственно, используя такой подход можно спокойно отправлять в репозиторий различные версии, тестировать их и если все в порядке, делать latest тег ссылающийся на нужную версию и работать с ним уже в боевом режиме.