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.
Anatomi Dockerfile
Section titled “Anatomi Dockerfile”# Mulai dari image yang sudah adaFROM nginx:alpine
# Salin file dari folder proyek ke dalam imageCOPY index.html /usr/share/nginx/html/
# Dokumentasi: aplikasi mendengarkan port 80EXPOSE 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 |
Build dan jalankan
Section titled “Build dan jalankan”cd proyek-webdocker build -t web-saya:1.0 .docker imagesdocker run -d --name porto -p 8090:80 web-saya:1.0-t web-saya:1.0memberi nama dan versi pada image.- Titik
.di akhir adalah build context: folder yang berisiDockerfiledan file yang akan di-COPY.
Membuat Dockerfile tanpa editor
Section titled “Membuat Dockerfile tanpa editor”Terminal latihan tidak punya editor, jadi kita menulis Dockerfile baris per baris:
echo 'FROM nginx:alpine' > Dockerfileecho 'COPY index.html /usr/share/nginx/html/' >> Dockerfilecat DockerfileIngat: > membuat/menimpa file, >> menambah baris di akhir.
Lab: Membuat image sendiri
Misi 0/7
- Masuk ke folder
proyek-webdan lihat isinya.Petunjuk
cd proyek-web lalu ls - Buat
Dockerfiledengan base imagenginx:alpine.Petunjuk
echo 'FROM nginx:alpine' > Dockerfile - Tambahkan instruksi untuk menyalin
index.htmlke folder web nginx.Petunjuk
echo 'COPY index.html /usr/share/nginx/html/' >> Dockerfile - Build image bernama
web-saya:1.0.Petunjuk
docker build -t web-saya:1.0 . - Pastikan image-nya muncul di daftar.
Petunjuk
docker images - Jalankan image itu sebagai container
portodi port 8090.Petunjuk
docker run -d --name porto -p 8090:80 web-saya:1.0 - Buka hasilnya dengan
curl.Petunjuk
curl localhost:8090
GNU nano ·
Tab = indentasi

