Как формируются имена образов при автоматической сборке
Имена образов формируются по правилу: берется путь из корня проекта и заменяются все /
на _
webui/backend/Dockerfile -> webui_backend
nginx/Dockerfile -> nginx
docs/Dockerfile -> docs
Настройка порядка сборки образов
Порядок сборки образов достигается за счет наличия файла build_order.txt
, который должен находиться в корне
подпроекта (смотреть пример подпроект genesis).
В файле указываются пути от корня подпроекта до конкретного Dockerfile, в желаемой последовательности. Если какие-либо
Dockerfile отсутствуют в build_order.txt
, то они собираться не будут.
Имена образов на выходе полностью соответствуют правилу формирования имени образа автоматической сборке.
Пример build_order.txt
для подпроекта genesis:
webui/backend/Dockerfile
nginx/Dockerfile
Проброс кастомных аргументов для сборки образа
Кастомные переменные добавляются за счет наличия файла build_args.txt
, который должен находиться в любом месте на
пути к Dockerfile (например в корне подпроекта).
Файл имеет формат ключ=значение
(по аналогии с .env
), и имеет приоритизацию ключа по расположению
(чем ближе файл, с ключом, к Dockerfile, тем выше у него приоритет попадания в аргументы при сборке).
Пример build_args.txt
:
DEBUG=1
SMTP_LOGIN=test@domen.ru
SMTP_HOST=localhost
Настройка переопределения переменных в манифестах
В манифестах Kubernetes можно использовать служебные переменные: ${TAG}
, ${REGISTRY_URL}
, ${NAMESPACE}
, при использовании домена будет сформированна переменная вида ${SERVICE_NAME_PUBLIC_URL}
. Так же можно использовать переменные экспортированные в окружения раннера.
В манифестах переменные вида $SAME_VAR
, будут заменены соответсвующими значениями из переменных окружения либо пробелом в случае отсутствия нужной переменной.
Если необходимо сохранить нотацию $SAME_VAR
в манифесте, тогда необходимо в первой строке манифеста прописать # ENVSUBST:
в таком случе ни одна переменная в манифесте не будет заменена.
Пример:
# ENVSUBST:
---
apiVersion: apps/v1
kind: Deployment
Если необходимо точечно заменить некоторые переменные тогда необходимо их указать # ENVSUBST: $FOO, $BAR, ${TAG}, ${REGISTRY_URL}
Пример:
# ENVSUBST: $FOO, $BAR, ${TAG}, ${REGISTRY_URL}
---
apiVersion: apps/v1
kind: Deployment