Build multi-tahap

Docker Tingkat Menengah

Mike Metzger

Data Engineering Consultant

Build satu tahap

  • Citra Docker umumnya dibuat dengan satu perintah FROM
  • Setiap penambahan ke citra sumber menambah ukuran dan mempersulit pengelolaan
  • Pertimbangkan aplikasi yang harus dikompilasi sebelum digunakan
    • Anda dapat menambahkan semua komponen yang diperlukan ke citra, mengompilasinya, lalu menyiapkan citra akhir untuk digunakan
    • Ini sering menyisakan konten berlebih di citra meski tidak digunakan
FROM ubuntu
RUN apt update
RUN apt install gcc -y
...
RUN make
CMD ["data_app"]
Docker Tingkat Menengah

Build multi-tahap

  • Build multi-tahap memakai beberapa container
  • Biasanya memiliki satu atau lebih tahap build
  • Komponen akhir disalin ke citra container final
  • Tahap build lalu dihapus otomatis
    • Menghemat ruang dan mengecilkan ukuran citra
  • Memakai sintaks tambahan di Dockerfile
    • AS <alias>
    • COPY --from=<alias>
Docker Tingkat Menengah

Contoh build multi-tahap

# 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 Tingkat Menengah

Ayo berlatih!

Docker Tingkat Menengah

Preparing Video For Download...