Dockerfile

Dockerfile

Dockerfile

Sebelumnya kita selalu membuat Container dari Image yang sudah ada.

Docker Compose juga bisa digunakan untuk membuat Container dari Dockerfile yang kita buat.

Hal ini mempermudah kita sehingga tidak perlu membuat Image nya terlebih dahulu secara manual, semua bisa dilakukan otomatis oleh Docker Compose.

Membuat Dockerfile

Sekarang kita akan buat contoh Dockerfile:
  • File main.go : https://github.com/ProgrammerZamanNow/belajar-docker-dockerfile/blob/main/env/main.go 
  • File Dockerfile : https://github.com/ProgrammerZamanNow/belajar-docker-dockerfile/blob/main/env/Dockerfile

Build

Ketika kita ingin membuat Container dari Dockerfile, kita tidak menggunakan attribute image lagi di service nya.

Kita harus menggunakan attribute build, dimana terdapat attribute :
  • context: berisi path ke file Dockerfile
  • dockerfile: nama file Dockerfile, bisa diganti jika mau
  • args: argument yang dibutuhkan ketika melakukan docker build
https://docs.docker.com/compose/compose-file/compose-file-v3/#build  

Image Name

Secara default, Docker Compose akan membuat Image dengan nama random ketika melakukan build Dockerfile.

Jika kita ingin menentukan namanya, kita bisa tambahkan attribute image pada service, secara otomatis Docker Compose akan membuat image dengan nama sesuai dengan itu.

Kode : Struktur Folder

main dot go build

Dockerfile build

Struktur Folder

Kode : Build

Docker Build

Build Dockerfile

Ketika kita menggunakan perintah docker compose start, secara otomatis Docker Compose akan melakukan build terlebih dahulu jika Image nya belum terbuat.

Tapi jika kita hanya ingin melakukan build Image saja, tanpa membuat Container, kita juga bisa menggunakan perintah : docker compose build 

Menghapus Image

Hasil Image dari Docker Compose tidak akan dihapus ketika melakukan perintah docker compose down 

Jadi untuk menghapusnya kita harus hapus manual menggunakan perintah docker image rm nama-image:tag 

Build Ulang

Perlu diingat, ketika kita mengubah kode program, lalu kita coba stop dan start ulang container menggunakan Docker Compose, bukan berarti kode program terbaru akan berjalan.

Hal ini karena Image versi baru otomatis terbuat, sehingga jika kita kita ingin menggunakan Image versi baru, kita harus hapus dulu Container nya, lalu buat ulang dengan Image baru.
Next Post Previous Post
No Comment
Add Comment
comment url