Kem Intensif DevOps · Pelajaran

Membina Imej Docker dengan Actions

Automatikkan proses membina imej Docker untuk aplikasi anda terus dalam aliran kerja GitHub Actions.

Pelajaran 1 daripada 411 langkah

Membina Imej Docker dengan Actions ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah Imej Docker?

Selamat datang! Dalam pelajaran ini, anda akan belajar membina imej Docker menggunakan GitHub Actions.

Pertama sekali, apakah imej Docker? Anggap ia sebagai pakej ringan, kendiri dan boleh laku yang merangkumi semua yang diperlukan untuk menjalankan sesuatu perisian:

  • Kod anda
  • Masa jalan (cth., Java, Python)
  • Alat dan pustaka sistem
  • Fail konfigurasi

Ia ibarat pelan untuk mencipta kontena Docker, sekali gus memastikan aplikasi anda berjalan secara konsisten merentas persekitaran yang berbeza.

Mengapa Mengautomatikkan Binaan Docker?

Membina imej Docker secara manual boleh berulang-ulang dan mudah menyebabkan ralat. Di sinilah automasi berguna!

Dengan mengintegrasikan pembinaan imej Docker ke dalam saluran paip CI/CD anda menggunakan GitHub Actions, anda memperoleh:

  • Konsistensi: Setiap binaan mengikut langkah yang sama.
  • Kelajuan: Binaan automatik lebih pantas berbanding binaan manual.
  • Kebolehpercayaan: Kurangkan ralat manusia.
  • Penyepaduan: Binaan dicetuskan secara automatik apabila kod berubah.

Ini ialah amalan teras dalam DevOps moden!

Pelan Dockerfile

Dockerfile ialah fail teks yang mengandungi semua perintah untuk memasang imej Docker. Ia ibarat resipi.

Berikut ialah contoh Dockerfile yang sangat ringkas:

FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]

Memahami Dockerfile

Mari kita huraikan Dockerfile ringkas itu:

  • FROM alpine:latest: Ini menentukan imej asas. Kita bermula dengan edaran Linux kecil yang bernama Alpine.
  • WORKDIR /app: Menetapkan direktori kerja di dalam imej.
  • COPY . .: Menyalin semua fail daripada direktori projek anda ke dalam direktori /app di dalam imej.
  • CMD ["echo", "Hello from Docker!"]: Ini ialah perintah yang akan dijalankan apabila kontena dimulakan daripada imej ini.

Fail ini terletak di akar projek anda.

Menyediakan Aliran Kerja Anda

Untuk membina imej Docker menggunakan GitHub Actions, anda akan mencipta fail YAML (cth., .github/workflows/docker-build.yml) dalam repositori anda.

Fail ini mentakrifkan aliran kerja anda, iaitu satu siri langkah automatik.

Aliran kerja asas untuk membina imej biasanya merangkumi:

  1. Mendapatkan kod anda.
  2. Menyediakan persekitaran binaan Docker.
  3. Membina imej Docker.

Langkah 1: Dapatkan Kod Anda

Langkah pertama dalam hampir semua aliran kerja GitHub Actions ialah mendapatkan kod repositori anda. Langkah ini dilakukan menggunakan action actions/checkout.

Action itu mengklon repositori anda ke dalam pelaksana, menjadikan Dockerfile dan kod aplikasi anda tersedia untuk proses binaan.

Beginilah rupanya dalam fail aliran kerja anda:

      - name: Checkout repository code
        uses: actions/checkout@v4

Langkah 2: Sediakan Docker Buildx

Seterusnya, kita perlu menyediakan persekitaran binaan Docker. docker/setup-buildx-action amat disyorkan.

Buildx ialah komponen Docker yang meluaskan keupayaan binaan Docker dan menyokong ciri lanjutan seperti binaan berbilang platform.

Tambahkan langkah ini pada aliran kerja anda:

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

Langkah 3: Bina Imej Docker

Kini tibalah bahagian utama: membina imej! Untuk tujuan ini, kita menggunakan docker/build-push-action.

Pilihan utama:

  • context: .: Menentukan konteks binaan (biasanya direktori akar repositori anda).
  • push: false: Buat masa ini, kita hanya membina tanpa menghantar imej ke registri. Kita akan membincangkan penghantaran dalam pelajaran kemudian.
  • tags: my-app:latest: Memberikan nama dan teg kepada imej anda.
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Contoh Lengkap Aliran Kerja Binaan

Berikut ialah aliran kerja GitHub Actions lengkap untuk membina imej Docker. Ingat, YAML ini perlu dimasukkan ke dalam .github/workflows/docker-build.yml.

Aliran kerja ini akan dicetuskan setiap kali berlaku push ke repositori anda.

name: Build Simple Docker Image

on: [push]

jobs:
  build-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

Semakan Pantas

Mari uji pemahaman anda tentang pembinaan imej Docker menggunakan GitHub Actions.

Imbas Kembali: Membina Imej Docker

Syabas! Anda telah mempelajari asas mengautomatikkan pembinaan imej Docker menggunakan GitHub Actions.

Kita telah membincangkan:

  • Apakah imej Docker dan sebab imej tersebut penting.
  • Peranan Dockerfile sebagai pelan imej.
  • Cara menyediakan aliran kerja GitHub Actions asas.
  • Cara menggunakan action penting seperti actions/checkout, docker/setup-buildx-action dan docker/build-push-action.

Dalam pelajaran seterusnya, kita akan meneroka cara menghantar imej yang dibina ini ke registri kontena!

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “Membina Imej Docker dengan Actions” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Membina Imej Docker dengan Actions”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membina Imej Docker dengan Actions”?

Automatikkan proses membina imej Docker untuk aplikasi anda terus dalam aliran kerja GitHub Actions. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Membina Imej Docker dengan Actions” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Membina Imej Docker dengan Actions
  2. Menolak Imej ke Pendaftaran
  3. Menggunakan ke Kubernetes dengan Actions
  4. Carta Helm dan Manifes Kubernetes dalam CI/CD
← Kembali ke Kem Intensif DevOps