Middle+
Какво е multi-stage build в Docker? За какво е нужен?
sobes.tech AI
Отговор от AI
Мултистейдж билд в Docker позволява използването на няколко етапа на изграждане в един Dockerfile. Това помага за създаването на компактни и оптимизирани изображения, като отделя етапите на изграждане и финалното изпълнение на приложението.
Например, в първия етап може да се компилира приложението с необходимите инструменти и зависимости, а във втория да се копират само компилираните артефакти в минимално изображение без излишни файлове и инструменти за изграждане.
Предимства:
- Намаляване на размера на крайното изображение
- Повишаване на сигурността (по-малко компоненти в крайния контейнер)
- Чистота и удобство при управление на Dockerfile
Пример:
# Етап на изграждане
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Крайно изображение
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]