Vícefázová sestavení

Intermediate Docker

Mike Metzger

Data Engineering Consultant

Jednofázová sestavení

  • Typické Docker image jsou vytvářeny pomocí jediného příkazu FROM
  • Každý přídavek ke zdrojovému image zabírá místo a ztěžuje správu
  • Vezměme aplikaci, která musí být před použitím zkompilována
    • Do image lze přidat všechny potřebné komponenty, zkompilovat ji a nakonfigurovat pro použití
    • V image pak často zůstává nepotřebný obsah
FROM ubuntu
RUN apt update
RUN apt install gcc -y
...
RUN make
CMD ["data_app"]
Intermediate Docker

Vícefázová sestavení

  • Vícefázová sestavení využívají více kontejnerů
  • Typicky obsahují jednu nebo více fází sestavení
  • Výsledné komponenty jsou zkopírovány do finálního image
  • Fáze sestavení jsou poté automaticky odstraněny
    • Šetří místo a minimalizují velikost image
  • Vyžadují dodatečnou syntaxi v Dockerfile
    • AS <alias>
    • COPY --from=<alias>
Intermediate Docker

Příklad vícefázového sestavení

# 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"]
Intermediate Docker

Pojďme si procvičit!

Intermediate Docker

Preparing Video For Download...