Хорошие практики
Мы настоятельно рекомендуем вам ознакомиться с хорошими практиками Docker чтобы помочь вам узнать лучший способ оптимизации вашего контейнера и его безопасности.
Вот несколько советов по оптимизации вашего контейнера для идеальной работы с Edgegap.
Версионирование
Версионирование при сборке контейнера является важным аспектом его жизненного цикла, поскольку многие окружения не будут повторно загружать образ, если тег уже присутствует на машине.
Тег latest
По умолчанию, когда вы запускаете команду сборки:
Для пользователей с ARM CPU (Mac M1, M2 и т.д.) добавьте --platform linux/amd64 опцию к вашей команде сборки.
docker build -t repo/example .В результате этой сборки образу будет присвоен тег latest
Следующее даёт тот же самый результат:
docker build -t repo/example:latest .Но имейте в виду, latest — это просто тег, как любой другой, и не всегда отражает вашу самую последнюю сборку.
Пример:
docker build -t repo/example:latest .
# внесите некоторые изменения в ваш код
docker build -t repo/example:0.1 .Edgegap НЕ ОБНОВИТ ваш тег latest и версия 0.1 будет отставать от нового кода.
Пример тегирования
Мы рекомендуем увеличивать или изменять вашу версию при каждой сборке образа, чтобы обеспечить корректное использование и избежать кеширования старой версии в системе. Если вы уже используете систему семантического версионирования или повышаете версию при каждой компиляции, то можно довольно легко автоматизировать процесс присвоения тега вашей сборке Docker.
Пример Bash-скрипта для сборки Dockerfile с соответствующей версией, которую вы передаёте аргументом.
Этот пример будет собирать с заданной версией, присваивать тег репозиторию и отправлять его (не забудьте сначала войти в систему, если вы используете приватный репозиторий).
С этим скриптом вы теперь можете использовать версию сборки вашего приложения для корректного обращения к ней.
Пример: вы собираете новую версию игрового сервера 2021.01.29.1234
Почему
Главная причина увеличивать тег при каждой сборке — предотвратить кеширование на Edge.
Чтобы иметь возможность запускать сервер за считанные секунды, мы предварительно загружаем образ и лишь при необходимости увеличиваем количество инстансов. Мы не можем гарантировать частоту политики Pull, поскольку загружаем образ только если он ещё не присутствует на Edge.
Так что по сути использование latest тега или любого постоянного тега может вызвать у вас проблемы при исправлении или отладке, поскольку вы будете обновлять сборку и деплоить её на Edgegap, но Edge не затянет новый версию вашего тега, так как он останется тем же.
Если вы никогда не использовали семантическое версионирование, Edgegap настоятельно рекомендует вам ознакомиться с ним и применить это к версии сборки!
Последнее обновление
Это было полезно?

