У меня есть Docker файл как следующее:Как уменьшить размер изображения докеры java/gradle?
FROM openjdk:8
ADD . /usr/share/app-name-tmp
WORKDIR /usr/share/app-name-tmp
RUN ./gradlew build \
mv ./build/libs/app-name*.jar /usr/share/app-name/app-name.jar
WORKDIR /usr/share/app-name
RUN rm -rf /usr/share/app-name-tmp
EXPOSE 8080
RUN chmod +x ./docker-entry.sh
ENTRYPOINT [ "./docker-entry.sh" ]
Проблема заключается в том, что конечный размер изображения 1.1GB, я знаю, что это происходит потому, что Gradle загружает и сохраняет все зависимости. Каков наилучший способ удалить эти ненужные файлы и просто сохранить банку?
Базовое изображение может немного способствовать, но это реальный ответ. К сожалению, [Docker не обратился к «вложенным сборкам»] (https://github.com/docker/docker/issues/7115). Как я обычно имел дело с этим, есть отдельные изображения «build» и «runtime» для обработки ограничений Docker. См. [Эту статью] (https://www.fpcomplete.com/blog/2015/12/docker-split-images) для возможного способа решения проблемы. – mkobit
@mkobit теперь вы можете использовать многоэтапные сборки для решения этой проблемы https://docs.docker.com/engine/userguide/eng-image/multistage-build/ –
@ GuidoGarcía хорошая точка! Может быть хорошей возможностью для нового ответа или улучшения этого. – mkobit