Я использую один и тот же раздел в двух разных файлах Docker (база - Ubuntu: 18.04 в обоих случаях), которые загружают два файла из удаленного места с помощью wget.
ENV ROBOT v1.5.0
ENV ROBOT_JAR=https://github.com/ontodev/robot/releases/download/$ROBOT/robot.jar
RUN wget $ROBOT_JAR -O /tools/robot.jar && \
wget https://raw.githubusercontent.com/ontodev/robot/$ROBOT/bin/robot -O /tools/robot && \
chmod +x /tools/*
docker history --no-trunc [...]
говорит мне, что в одном Dockerfile слой, созданный этой командой, имеет размер 114 МБ:
... /bin/sh -c wget $ROBOT_JAR -O /tools/robot.jar && wget https://raw.githubusercontent.com/ontodev/robot/$ROBOT/bin/robot -O /tools/robot && chmod +x /tools/* 114MB
, а в другом только 44,9 МБ:
... /bin/sh -c wget $ROBOT_JAR -O /tools/robot.jar && wget https://raw.githubusercontent.com/ontodev/robot/$ROBOT/bin/robot -O /tools/robot && chmod +x /tools/* 44.9MB
Помимо того, что файлы Docker имеют одну и ту же базу, они, конечно, очень разные (например, один файл размером 114 МБ огромен, тогда как файл объемом 45 МБ имеет только два определенных слоя); Мне любопытно: что может вызвать разницу в размерах? Можно ли это как-то смягчить?
РЕДАКТИРОВАТЬ 1:
Вот случай 114 МБ: https://github.com/INCATools/ontology-development-kit/blob/master/Dockerfile
Вот другой: https://github.com/INCATools/ontology-development-kit/blob/master/docker/testdocker/Dockerfile