Назад | Перейти на главную страницу

Препроцессор для Dockerfile с переменными и включаемыми файлами

Я использую докер для ряда своих приложений. Я дошел до того, что у меня около дюжины файлов докеров. Часто мне приходится вносить одно и то же изменение или включать что-то в несколько файлов докеров, что означает, что мне приходится вносить одно и то же изменение в нескольких местах.

Возможно, решением этой проблемы было бы использование препроцессора, который поддерживает включаемые файлы и переменные. Таким образом, я могу иметь общие вещи в одном файле (например, кучу вещей для включения монитора и супервизора) и включать эти файлы в свой Dockerfile.

Сама сборка Docker не включает замену переменных, так что, может быть, препроцессор решит проблему? Я знаю, что для CSS есть множество препроцессоров, так что есть ли общий препроцессор или что-то, что возьмет файл YAML или JSON и запишет что-то, что будет понимать Docker?

На самом деле это был тема обсуждения в Docker GitHub. Заключительный комментарий в значительной степени резюмируется как: «Нет, Dockerfile не является и не должен быть языком сценариев».

Но то, как вы описываете этот случай, мне кажется чем-то, что вы должны сделать после сборки, при инициализации контейнера для созданного вами изображения (возможно, используя тома или переменные среды с красивым сценарием оболочки). Вы пробовали такой подход?