0

Cara build aplikasi sederhana menjadi image docker

build aplikasi menjadi image docker
build aplikasi menjadi image docker


Tutorial kali ini membahas cara build aplikasi menjadi image docker.


Kita akan membuat aplikasi sederhana yang menampilkan tulisan “This is my website”, dan dapat diakses melalui browser melalui port 7111 di localhost. Setelah itu kita akan build aplikasinya menjadi bentuk image. Kira-kira aplikasinya seperti ini:

Aplikasinya hanya menggunakan httpd sebagai webserver dan html saja. Simple kan? Mari kita mulai ..


Daftar isi:

  1. Pull sample image httpd dan jalankan container baru
  2. Start httpd webserver dan mengaksesnya dari browser
  3. Modifikasi file index.html
  4. Build image dari container yang sedang berjalan
  5. Testing image


1. Pull sample image httpd dan jalankan container baru

Pertama, kita butuh image dasar yaitu httpd untuk menjalankan web servernya, jadi kita pull/download dulu image httpd

docker pull httpd:latest

Untuk menjalankan image, kita butuh container. Jadi kita buat containernya terlebih dahulu

docker run -it --name mywebsite -p 7111:80 httpd:latest bash

Penjelasan:

run -it = kita menjalankan container dengan mode interaktif dan tty, simplenya kita akan masuk ke terminalnya si container dan bisa melakukan input (STDIN)

–name mywebsite = nama container yang akan kita buat yaitu mywebsite

-p 7111:80 = kita akan ekspos port 7111 supaya bisa diakses dari browser, sedangkan 80 itu port httpdnya yang berjalan didalam containernya

bash = command bash akan dijalankan setelah container terbuat, dengan bash kita bisa menginputkan command seperti ls -al, pwd, dll

2. Start httpd webserver dan mengaksesnya dari browser

Okey sekarang container sudah berjalan, dan posisi kita sekarang berada didalam container.

Langkah selanjutnya adalah men-start webserver httpd nya

httpd -k start

Sekarang kita coba buka lewat browser, ketikkan seperti dibawah:

http://localhost:7111

3. Modifikasi file index.html

Okey, httpd sudah bisa diakses, sekarang kita akan ubah tulisan “It works” menjadi “This is my website”

echo '<html><body><h1>This is my website!</h1></body></html>' > htdocs/index.html

Buka kembali lewat browser:

Bagus.. aplikasi kita sudah jadi, #eh cuma begini doang? hehe iya.. cuma begini.. kita buat yang simple2 aja dulu ya, biar mudah dipahami. Nextnya mungkin saya akan buat aplikasi yang connect ke database.

4. Build image dari container yang sedang berjalan

Sekarang saatnya mengkonversikan aplikasinya menjadi image, caranya buka tab baru diterminal, lalu jalankan command berikut:

docker commit --change='CMD ["httpd", "-D", "FOREGROUND"]' mywebsite myimage:1.0

Penjelasan:

commit = command untuk membuat image dari container yang sedang berjalan

CMD [“httpd”, “-D”, “FOREGROUND”] = menjalankan webserver httpd

mywebsite = nama container yang tadi sudah kita buat

myimage:1.0 = nama image dan tag yang akan kita buat. Tag disini biasanya digunakan untuk versioning imagenya, misal nanti akan ada versi baru dari image: myimage, maka penamaannya menjadi myimage:2.0


Jadi intinya pada command diatas, kita akan membuat image dari container yang sedang kita jalankan, yaitu mywebsite. Nah container mywebsite ini berisi aplikasi kita, yaitu “This is my website”.

Oke, setelah kalian execute command itu hasilnya akan seperti ini:

cara build aplikasi ke image docker

akan terbuat image baru dengan ID: sha256:30fa5ad3acb095e8029083d13469e2d207db7acb36856d83d1c2ce305b475194, jika kalian jalankan command berikut akan muncul detail image yang barusan kita buat

docker images
cara build aplikasi ke image docker

image myimage dengan tag 1.0 dan image id 30fa5ad3acb0

Great! imagenya berhasil kita buat! image tersebut sudah berisi aplikasi yang kita buat “This is my website”.

5. Testing image

Untuk membuktikan apakah image yang kita buat sudah ok tidak ada error, kita akan buat container baru dari image tersebut:

docker run -it --name mycontainerimage -p 7112:80 myimage:1.0 bash
httpd -k start
cara build aplikasi ke image docker

Sekarang buka lewat browser

http://localhost:7112

Siipp.. the image works well ! 🙂

Nah.. image ini bisa kalian push ke repository seperti docker hub, ECR aws, Lightsail aws, GCR google, dll. Dan kemudian dideploy ke layanan seperti EKS aws, ECS aws, GKE google, dll agar bisa diakses dari internet.

Contoh cara deploynya ada disini: cara deploy ke Lightsail aws, jika kalian tertarik silahkan klik aja tutorialnya.

Okey, jadi sekian tutorial cara build aplikasi ke image docker.. mudah-mudahan bermanfaat, sekian. See you!

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.