Можно ли сделать так, чтобы инструкция FROM в Dockerfile извлекала самый последний образ? - PullRequest
1 голос
/ 17 июня 2020

Я хочу знать, можно ли сделать так, чтобы инструкция FROM в файле Dockerfile извлекала самый последний образ (например, image:latest) перед тем, как продолжить сборку?

В настоящее время только извлекается образ если он еще не сохранен локально.

Ответы [ 2 ]

5 голосов
/ 17 июня 2020

docker build --pull OTHER_OPTIONS PATH

От https://docs.docker.com/engine/reference/commandline/build/

--pull      Always attempt to pull a newer version of the image

Хотя для этой цели может быть подлинный вариант использования, я настоятельно рекомендую избегать зависимости от эта опция в производственных сборках. Docker изображения должны быть неизменяемыми. Использование этой опции может привести к ситуациям, когда разные изображения создаются из одного и того же исходного кода, и любые изменения поведения, возникающие в результате таких сборок без соответствующих изменений в коде, трудно отлаживать.

Допустим, есть проект под названием «производный проект», который использует базовое изображение myBaseImage:latest

FROM myBaseImage:latest

<snipped>

CMD xyz
docker build --pull -t myDerivedImage:<version of source code> .

Предполагая, что тег производного изображения основан на его версии исходного кода ( a git commit ha sh, например), который является наиболее распространенным способом пометить изображения, если новое базовое изображение под последним тегом публикуется, а в производном проекте нет изменений, сборка производного проекта будет производить другие изображения под тем же именем до и после изменения базового изображения. После того, как изображение опубликовано под именем, его нельзя изменять.

1 голос
/ 17 июня 2020

Чтобы создать образ docker путем обновления базового образа, вы должны использовать параметр:

--pull

Я оставляю вам официальную документацию, в которой обсуждается этот параметр и многое другое: официальная docker документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...