Asas Docker dan DevOps · Pelajaran

Membina Imej Docker dengan Jenkins

Konfigurasikan tugas Jenkins untuk membina dan menghantar imej Docker ke daftar secara automatik apabila kod berubah.

Pelajaran 2 daripada 412 langkah

Membina Imej Docker dengan Jenkins ialah pelajaran Asas Docker dan DevOps percuma di CoddyKit. Ini ialah pelajaran 2 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 Asas Docker dan DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.

Mengautomatikkan Binaan Docker

Membina imej Docker secara manual boleh menjadi lambat, tidak konsisten dan mudah mengalami ralat. Hal ini lebih ketara dalam persekitaran pasukan atau apabila Anda kerap membuat perubahan kod.

Automasi ialah kunci kepada penghantaran perisian yang boleh dipercayai dan cekap. Dalam pelajaran ini, kita akan belajar cara menyepadukan Jenkins dengan Docker untuk mengautomatikkan penciptaan dan penghantaran imej.

Membina Imej Docker dengan Jenkins — ilustrasi 1

Prasyarat Jenkins dan Docker

Untuk membina imej Docker, Jenkins perlu berinteraksi dengan daemon Docker. Ini bermaksud klien Docker mesti dipasang pada mesin atau ejen tempat kerja Jenkins Anda akan dijalankan.

Anda juga memerlukan:

  • Pelayan Jenkins yang sedang berjalan (daripada Pelajaran 1)
  • Akses kepada pendaftaran Docker (contohnya, Docker Hub)
  • Aplikasi contoh dan Dockerfilenya

Memasang Docker pada Hos Jenkins

Untuk membolehkan Jenkins melaksanakan perintah Docker, pastikan Docker dipasang dan dikonfigurasikan pada pelayan atau ejen Jenkins. Pengguna Jenkins selalunya memerlukan kebenaran untuk berinteraksi dengan daemon Docker.

Begini cara anda boleh menyediakannya pada sistem Linux:

sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkins

Melindungi Bukti Kelayakan Pendaftaran

Untuk menolak imej ke pendaftaran Docker, Jenkins memerlukan bukti kelayakan. Bukti kelayakan ini mesti disimpan dengan selamat dan bukan terus dalam Jenkinsfile atau konfigurasi kerja.

Ciri Bukti Kelayakan terbina dalam Jenkins amat sesuai untuk tujuan ini:

  • Pergi ke Urus Jenkins > Urus Bukti Kelayakan.
  • Tambah bukti kelayakan Nama pengguna dengan kata laluan baharu untuk pendaftaran Docker anda.
  • Berikan ID yang deskriptif (contohnya, dockerhub-credentials) untuk dirujuk kemudian.

Aplikasi Flask Contoh

Mari gunakan aplikasi Flask Python yang sangat ringkas. Kita akan meletakkannya dalam fail bernama app.py. Aplikasi ini akan menyampaikan mesej asas 'Hello'.

Kita juga memerlukan fail requirements.txt untuk menentukan kebergantungan Python kita.

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from CoddyKit!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

# requirements.txt
Flask==2.0.2

Mencipta Dockerfile

Seterusnya, kita akan mentakrifkan imej Docker menggunakan Dockerfile. Fail ini akan mengarahkan Docker tentang cara membina imej aplikasi kita.

Letakkan Dockerfile ini dalam direktori yang sama dengan app.py dan requirements.txt anda.

# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]

Kerja Jenkins: Langkah Binaan

Sekarang, mari konfigurasikan kerja Jenkins gaya bebas. Dalam bahagian Langkah Binaan, tambah langkah Laksanakan shell. Perintah ini akan membina imej Docker anda.

Ingat untuk menggantikan yourusername dengan nama pengguna Docker Hub atau laluan pendaftaran anda.

# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .

Kerja Jenkins: Langkah Log Masuk & Tolak

Selepas membina imej, kita perlu menolaknya ke pendaftaran Docker kita. Biasanya, tindakan ini memerlukan log masuk. Kita akan menggunakan bukti kelayakan yang disimpan sebelum ini.

Tambah satu lagi langkah Laksanakan shell. Jenkins akan menyuntik bukti kelayakan sebagai pemboleh ubah persekitaran (contohnya, DOCKER_USER, DOCKER_PASS) jika dikonfigurasikan dengan betul.

# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latest

Mengautomatikkan Pencetus Binaan

Kekuatan CI/CD datang daripada automasi. Jenkins boleh mencetuskan kerja binaan dan tolakan ini secara automatik berdasarkan pelbagai peristiwa:

  • Tinjauan SCM: Jenkins menyemak repositori Git anda secara berkala untuk mendapatkan komit baharu.
  • Cangkuk web: Penyedia Git anda (GitHub, GitLab, Bitbucket) menghantar pemberitahuan kepada Jenkins setiap kali kod ditolak.
  • Projek huluan: Dicetuskan selepas kerja Jenkins yang lain selesai dengan jayanya.

Menguji Kerja Jenkins

Selepas mengkonfigurasi langkah binaan dan pencetus, simpan kerja Jenkins anda. Anda boleh mencetuskan binaan secara manual untuk mengujinya. Perhatikan output konsol untuk memastikan imej Docker berjaya dibina dan ditolak.

Pelaksanaan yang berjaya bermakna saluran paip CI anda kini boleh menghasilkan dan menyimpan imej Docker baharu secara automatik setiap kali kod anda berubah!

Semakan Pantas

Anda telah menyediakan kerja Jenkins untuk membina dan menolak imej Docker. Repositori Git anda mempunyai perubahan kod baharu.

Imbas Kembali: Bina & Tolak

Syabas! Dalam pelajaran ini, anda telah mempelajari cara untuk:

  • Menyediakan persekitaran Jenkins anda untuk berinteraksi dengan Docker.
  • Mengurus bukti kelayakan pendaftaran Docker dengan selamat dalam Jenkins.
  • Mengkonfigurasi kerja Jenkins untuk membina imej Docker menggunakan Dockerfile.
  • Menolak imej yang baru dibina ke pendaftaran Docker.
  • Memahami pelbagai cara untuk mencetuskan binaan automatik.

Mengautomatikkan langkah-langkah ini merupakan bahagian teras Integrasi Berterusan dan menjadi asas kepada Penghantaran Berterusan!

Percuma untuk bermula

Pelajari Asas Docker dan 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
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Membina Imej Docker dengan Jenkins” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan DevOps, termasuk “Membina Imej Docker dengan Jenkins”, 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 Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.

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

Konfigurasikan tugas Jenkins untuk membina dan menghantar imej Docker ke daftar secara automatik apabila kod berubah. Anda berlatih Asas Docker dan 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 Asas Docker dan DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Docker dan 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 2 daripada 4.

Berapa lamakah pelajaran “Membina Imej Docker dengan Jenkins” 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 Asas Docker dan DevOps ini?

Ya. Setiap pelajaran Asas Docker dan 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. Pengenalan kepada Jenkins
  2. Membina Imej Docker dengan Jenkins
  3. Pelaksanaan Automatik dengan Jenkins
  4. Pipeline Jenkins sebagai Kod dengan Jenkinsfile
← Kembali ke Asas Docker dan DevOps