Lewati ke konten

5. Membuat Image dengan Dockerfile

Sejauh ini kamu memakai image buatan orang lain. Dengan Dockerfile, kamu bisa membuat image sendiri: aplikasi kamu + semua kebutuhannya, siap dijalankan di mana saja.

# Mulai dari image yang sudah ada
FROM nginx:alpine
# Salin file dari folder proyek ke dalam image
COPY index.html /usr/share/nginx/html/
# Dokumentasi: aplikasi mendengarkan port 80
EXPOSE 80
Instruksi Fungsi
FROM image dasar. Wajib dan selalu di baris pertama
COPY src dst salin file/folder dari proyek ke image
RUN perintah jalankan perintah saat build, mis. RUN apk add curl
WORKDIR /app folder kerja untuk instruksi berikutnya
EXPOSE 80 catatan port yang dipakai aplikasi
CMD [...] perintah yang dijalankan saat container menyala
Terminal window
cd proyek-web
docker build -t web-saya:1.0 .
docker images
docker run -d --name porto -p 8090:80 web-saya:1.0
  • -t web-saya:1.0 memberi nama dan versi pada image.
  • Titik . di akhir adalah build context: folder yang berisi Dockerfile dan file yang akan di-COPY.

Terminal latihan tidak punya editor, jadi kita menulis Dockerfile baris per baris:

Terminal window
echo 'FROM nginx:alpine' > Dockerfile
echo 'COPY index.html /usr/share/nginx/html/' >> Dockerfile
cat Dockerfile

Ingat: > membuat/menimpa file, >> menambah baris di akhir.

Lab: Membuat image sendiri
Misi 0/7
  1. Masuk ke folder proyek-web dan lihat isinya.
    Petunjukcd proyek-web lalu ls
  2. Buat Dockerfile dengan base image nginx:alpine.
    Petunjukecho 'FROM nginx:alpine' > Dockerfile
  3. Tambahkan instruksi untuk menyalin index.html ke folder web nginx.
    Petunjukecho 'COPY index.html /usr/share/nginx/html/' >> Dockerfile
  4. Build image bernama web-saya:1.0.
    Petunjukdocker build -t web-saya:1.0 .
  5. Pastikan image-nya muncul di daftar.
    Petunjukdocker images
  6. Jalankan image itu sebagai container porto di port 8090.
    Petunjukdocker run -d --name porto -p 8090:80 web-saya:1.0
  7. Buka hasilnya dengan curl.
    Petunjukcurl localhost:8090