Влияет ли размер контекста сборки на размер изображения? - PullRequest
1 голос
/ 09 января 2020

Когда я строю изображения с docker build, вывод содержит размер контекста, например:

Sending build context to Docker daemon  1.315GB
[...]
Successfully built a9ec4d33e12e

Влияет ли этот размер на размер получаемого изображения? Должен ли я стремиться уменьшить его?

Ответы [ 3 ]

3 голосов
/ 09 января 2020

Контекст сборки может в некоторых случаях влиять на размер изображения, да.

Если вы сделаете:

COPY . /app

Тогда все в контексте будет скопировано в /app в изображении.

Если вы копируете только явные подмножества контекста, например, COPY mydir/ app/, тогда размер контекста не будет влиять на размер изображения, только размер mydir будет влиять на размер изображения.

Вы должны создать .dockerignore, в котором пропущены файлы, которые вам не нужны.

2 голосов
/ 09 января 2020

Когда вы запускаете docker build, он отправляет все файлы в каталоге Dockerfile и все его подкаталоги демону Docker. Это делается при условии, что ваш Dockerfile, вероятно, будет ссылаться на все эти файлы, но учтите, что не проверяет ваш Dockerfile, чтобы выяснить, какие файлы отправлять . Он просто отправляет все.

Есть несколько способов уменьшить размер контекста сборки:

  • Поместите ваш Dockerfile в его собственный каталог только с необходимыми файлами , Например, вместо Dockerfile на верхнем уровне вашего проекта, поместите его в свой собственный подкаталог.

  • Напишите файл .dockerignore, в котором перечислены файлы, исключаемые из построить контекст. Когда вы не можете убрать файлы с пути, это следующая лучшая вещь.

Влияет ли этот размер на размер получаемого изображения?

Да и нет. Слишком большой контекст сборки не увеличит размер изображения. Дополнительные файлы в контексте сборки, которые не используются Dockerfile, просто выбрасываются.

Однако, если вы используете .dockerignore, чтобы игнорировать файлы, которые Dockerfile использует, которые могут уменьшить изображение размер (и потенциально сломать его). Игнорирование файлов приведет к тому, что COPY . /app скопирует меньшее количество файлов, например.

Должен ли я уменьшить его?

Да. Это ускорит процесс сборки.

2 голосов
/ 09 января 2020

Влияет ли этот размер на итоговый размер изображения?

Нет

Стоит ли уменьшать его?

Да. Это экономит время на создание образа.

источник:

https://medium.com/better-programming/docker-tips-about-the-build-context-dbc76505e178

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