Другой вариант - динамически создавать несколько файлов из одного файла. Проблема в том, что Docker 1.7.1 не поддерживает --build-arg, и чтобы быть разумным, он терпит неудачу
Так что, если Dockerfile должен работать на современных и старых докерах, то он должен соответствовать 1.7.1, который является самым новым, который может работать с centos / rhel 6 (6.9 в моем случае).
Мне пришлось прибегнуть к использованию envsubst
для замены переменных значениями перед запуском сборки Docker. Вы можете передать результат envsubst непосредственно в Docker или сначала сохранить его в файл. Сохранение его в файл сначала позволит вам устранить неполадки ввода. Например, один pitfal должен использовать все переменные, которые в конце могут попытаться разрешить больше, чем вы хотели бы, я лично использую envsubst всегда с аргументом, перечисляющим, какие переменные он может разрешить, поэтому он не будет пытаться разрешить что-либо еще.