6. Ошибки при написании dockerfile

Основные ошибки при написании dockerfile

-нельзя записывать каждую команду в инструкцию
каждая инструкция создает отдельный слой -> растет образ
оптимально так
RUN apt-get clean
RUN apt-get update

RUN apt-get install app1 app2 -y

а еще лучше так
RUN apt-get clean && \
apt-get update && \

apt-get install app1 app2 -y

-рекомендуется удалять лишний cache (удалять надо в той же инструкции т.к. иначе он останется в предыдущем слое)
RUN apt-get clean && \
apt-get update && \

apt-get install app1 app2 -y && \
rm -rf /var/lib/apt/lists/*

– часто изменяемые части нужно записывать ниже в dockerfile т.к. docker не будет пересобирать вышерасположенные слои

– для уменьшения числа слоев лучше выполнять копирование файлов в 1 директорию в 1 команду

COPY ./files/file1.txt ./files/file2.txt /opt/…/

-выполнять сборку компилируемых приложений в отдельном образе (это можно сделать в 1м dockerfile)

ARG APP_NAME=”myAPP”

FROM ubuntu:22.04 as builder
COPY ….
//сборка

FROM ubuntu:22.04

COPY –from=builder ./build/${myAPP} ./exec/${myAPP}
CMD [“./exec/${myAPP}”]

Самые маленькие образы – scratch, alpine
scratch особенно удобен для запуска приложения

Leave a Reply

Your email address will not be published. Required fields are marked *