Багатостадійні збірки

Середній рівень Docker

Mike Metzger

Data Engineering Consultant

Одностадійні збірки

  • Типові образи Docker створюють однією командою FROM
  • Кожне додавання до базового образу збільшує розмір і ускладнює керування
  • Розгляньте застосунок, який треба скомпілювати перед використанням
    • Ви можете додати всі потрібні компоненти в образ, зібрати його, а потім налаштувати фінальний образ для роботи
    • Це часто лишає зайвий вміст в образі, навіть якщо він не використовується
FROM ubuntu
RUN apt update
RUN apt install gcc -y
...
RUN make
CMD ["data_app"]
Середній рівень Docker

Багатостадійні збірки

  • Багатостадійні збірки використовують кілька контейнерів
  • Зазвичай мають один або більше етапів збірки
  • Фінальні компоненти копіюють у підсумковий образ контейнера
  • Етапи збірки потім автоматично видаляються
    • Це економить місце та зменшує розмір образу контейнера
  • Використовують додатковий синтаксис у Dockerfile
    • AS <alias>
    • COPY --from=<alias>
Середній рівень Docker

Приклад багатостадійної збірки

# Create initial build stage
FROM ubuntu AS stage1

# Install compiler and compile code RUN apt install gcc -y ... RUN make
# Start new stage to create final image FROM alpine-base
# Copy from first stage to final COPY --from=stage1 /data_app /data_app
# Run application on container start CMD ["data_app"]
Середній рівень Docker

Давайте потренуємось!

Середній рівень Docker

Preparing Video For Download...