Я подозреваю, что ответ на этот вопрос отрицательный, поскольку команда FROM идет первой в файле (перед любыми операторами ENV), но можете ли вы параметризовать версию базового образа, из которого создается контейнер докера?
например
FROM image-name:4.6.${patchVersion}
Причина, по которой я смотрю на это, - поддержка CI / CD. Я разделил контейнер сборки и контейнер развертывания, а patchVersion контейнера развертывания генерируется сборкой. Я также хотел бы таким образом сгенерировать номер патча контейнера сборки, а затем ссылаться на него из контейнера развертывания
TL; DR не только с Docker
Длинный:
В документации говорится:
Переменные среды поддерживаются следующим списком инструкций в Dockerfile:
- ДОБАВИТЬ
- КОПИРОВАТЬ
- ENV
- ВЫБРАТЬ
- МЕТКА
- ПОЛЬЗОВАТЕЛЬ
- WORKDIR
- ОБЪЕМ
- ОСТАНОВИТЬ
https://docs.docker.com/engine/reference/builder/#environment-replacement
Ты можешь использовать envsubst
https://linux.die.net/man/1/envsubst переписать ваш Dockerfile
прежде чем делать docker build
envsubst < Dockerfile.template_with_variable > Dockerfile
docker build .