Кажется, что это контекст, который должен быть изменен между сборками, а не файлом Dockerfile, правильно? В любом случае, одним из способов достижения этой цели является использование возможности Docker для получения контекста в виде файла tar (необязательно gz) с файлом Docker в его корне:
tar --create \
/some/path/to/Dockerfile \
/other/path/to/package-X.Y.Z.tgz \
--transform 's,.*/,,' \
--transform 's/package.*tgz/package.tgz/' |
docker build -t myapp/myapp:v1 -
Примечание:
Первый transform выравнивает структуру каталогов, поэтому все файлы появляются в корне файла tar, где Docker ожидает их. Второй transform удаляет номер версии из файла пакета, так что вам не нужно редактировать строку ADD package.tgz . в файле Docker.