Размер не может измениться после того, как сборка будет зависеть - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть докер-файл, как показано ниже, и я обнаружил, что размер образа dcoker не может уменьшиться, когда я добавлю «RUN apk del .build-deps»,

RUN apk -U upgrade && \
    apk -v add --no-cache --virtual .build-deps gcc make && \
    apk -v add --no-cache bash curl && \
    apk -v add --no-cache mysql-client libc-dev mariadb-dev
COPY ./squid.conf /etc/squid/
COPY ./startService.sh /

WORKDIR /home/mysql_auth
RUN make clean && make && make install
RUN apk del .build-deps && \
    rm -rf /var/cache/apk/*

, что не так, иМогу ли я что-то изменить в этом Dockerfile, чтобы уменьшить размер образа Docker

1 Ответ

0 голосов
/ 28 декабря 2018

Это связано с тем, что образы докеров строятся из слоев.Хорошее объяснение, которое применимо к вашему делу, можно найти по адресу в этом сообщении.

Общая техника состоит в том, чтобы связать все вещи, которые вы хотите совершить в одном слое, в один RUNкоманда.В вашем случае это может выглядеть примерно так (вероятно, потребуется настройка):

RUN apk -U upgrade && \
    apk -v add --no-cache bash curl && \
    apk -v add --no-cache mysql-client libc-dev mariadb-dev
COPY ./squid.conf /etc/squid/
COPY ./startService.sh /

WORKDIR /home/mysql_auth
RUN apk -v add --no-cache --virtual .build-deps gcc make && \
    make clean && make && make install && \
    apk del .build-deps && \
    rm -rf /var/cache/apk/*
...