0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Kontainerisasi dengan Docker

Pelajari cara mengemas aplikasi Scala ke dalam kontainer menggunakan Docker untuk lingkungan yang konsisten dan penerapan yang lebih sederhana.

Kontainerisasi dengan Docker adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Mengapa Mengontainerisasi Aplikasi Scala?

Saat menerapkan aplikasi Scala, memastikan lingkungan yang konsisten di seluruh pengembangan, pengujian, dan produksi dapat menjadi tantangan. Di sinilah kontainerisasi berperan!

Kontainer mengemas aplikasi Anda beserta semua dependensinya (seperti Java Virtual Machine, pustaka, dan konfigurasi) ke dalam satu unit terisolasi. Dengan demikian, aplikasi berjalan dengan cara yang sama di mana pun.

Docker: Citra dan Kontainer

Docker adalah platform paling populer untuk kontainerisasi. Docker menggunakan dua konsep inti:

  • Citra Docker: Paket ringan, mandiri, dan dapat dieksekusi yang mencakup semua hal yang diperlukan untuk menjalankan suatu perangkat lunak, termasuk kode, runtime, alat sistem, pustaka sistem, dan pengaturan. Anggaplah ini sebagai cetak biru.
  • Kontainer Docker: Instans citra Docker yang dapat dijalankan. Saat Anda menjalankan sebuah citra, citra tersebut menjadi kontainer. Kontainer terisolasi satu sama lain dan dari sistem host.

Menjalankan Docker untuk Pertama Kalinya

Mari coba menjalankan wadah Docker yang sangat dasar. Perintah ini mengunduh citra hello-world (jika belum tersedia), lalu menjalankannya sebagai wadah.

Anda akan melihat pesan yang mengonfirmasi bahwa Docker berfungsi!

docker run hello-world

Aplikasi Scala Sederhana Kita

Sebelum membuat wadah, mari buat aplikasi Scala minimal. Program ini hanya akan mencetak pesan ke konsol.

Sebentar lagi kita akan mengemasnya ke dalam citra Docker!

object Main extends App {
  val message = "Hello from CoddyKit's Docker container!"
  println(message)
}

Cetak Biru: Dockerfile

Dockerfile adalah file teks yang berisi semua perintah yang dapat dipanggil pengguna pada baris perintah untuk menyusun sebuah citra. Ini seperti resep untuk membuat citra Docker Anda.

Petunjuk utamanya meliputi:

  • FROM: Menetapkan citra dasar.
  • WORKDIR: Menetapkan direktori kerja.
  • COPY: Menyalin file ke dalam citra.
  • RUN: Menjalankan perintah selama pembuatan citra.
  • CMD: Menentukan perintah yang dijalankan saat wadah dimulai.

Dockerfile: Tahap Pembuatan untuk Scala

Untuk Scala, kita sering menggunakan pembuatan multistage. Tahap pertama membuat aplikasi kita. Kita menggunakan citra OpenJDK dengan JDK lengkap untuk mengompilasi kode Scala kita.

# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.class

Dockerfile: Tahap Runtime untuk Scala

Tahap kedua membuat citra yang jauh lebih kecil, yang hanya berisi JRE (Java Runtime Environment) dan aplikasi Scala kita yang telah dikompilasi (file JAR). Dengan demikian, ukuran citra akhir tetap minimal.

# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]

Dockerfile Scala Lengkap

Berikut Dockerfile multistage lengkap untuk aplikasi Scala kita. File ini harus diberi nama Dockerfile dan ditempatkan di direktori yang sama dengan Main.scala.

# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.class

# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]

Membuat Citra Docker

Sekarang kita sudah memiliki Dockerfile dan Main.scala, mari buat citra Docker. Flag -t memberi tag berupa nama pada citra kita (misalnya, scala-hello), sedangkan . menunjukkan bahwa direktori saat ini adalah konteks pembuatan.

docker build -t scala-hello .

Menjalankan Aplikasi Scala dalam Wadah

Setelah citra dibuat, Anda dapat menjalankan aplikasi Scala di dalam wadah Docker menggunakan perintah docker run. Perintah ini akan menjalankan instruksi CMD yang ditentukan dalam Dockerfile Anda.

docker run scala-hello

Anda seharusnya melihat "Hello from CoddyKit's Docker container!" tercetak di konsol Anda!

Uji Pengetahuan Anda

Uji pemahaman Anda tentang Dockerfile.

Rangkuman: Membuat Wadah Scala

Anda telah berhasil mempelajari dasar-dasar membuat wadah untuk aplikasi Scala dengan Docker!

  • Citra Docker adalah cetak biru, sedangkan Wadah adalah instans yang dapat dijalankan.
  • Dockerfile adalah resep untuk membuat citra Anda.
  • Pembuatan multistage membantu membuat citra yang kecil dan efisien untuk aplikasi Scala.
  • Perintah seperti docker build dan docker run digunakan untuk mengelola citra dan wadah Anda.

Pengetahuan ini sangat penting untuk menerapkan layanan mikro Scala secara konsisten dan andal.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kontainerisasi dengan Docker” gratis?

Ya — teks lengkap “Kontainerisasi dengan Docker” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Kontainerisasi dengan Docker”?

Pelajari cara mengemas aplikasi Scala ke dalam kontainer menggunakan Docker untuk lingkungan yang konsisten dan penerapan yang lebih sederhana. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?

Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.

Berapa lama pelajaran “Kontainerisasi dengan Docker” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?

Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Merancang Layanan Mikro Scala
  2. Kontainerisasi dengan Docker
  3. Strategi Penerapan di Awan
← Kembali ke Scala for Backend Engineering & Functional Programming