Pelaksanaan Automatik dengan Jenkins
Cipta saluran paip CI/CD dalam Jenkins untuk melaksanakan bekas Docker anda ke persekitaran sasaran.
Pelaksanaan Automatik dengan Jenkins ialah pelajaran Asas Docker dan DevOps percuma di CoddyKit. Ini ialah pelajaran 3 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.
Pengenalan kepada Penerapan Automatik
Selamat datang ke pelajaran terakhir tentang CI/CD dengan Jenkins dan Docker! Hari ini, kita akan menumpukan pada pengautomatan penerapan bekas Docker anda.
Penerapan automatik ialah proses mengeluarkan perisian ke persekitaran pengeluaran atau pementasan tanpa campur tangan manual. Proses ini merupakan bahagian penting dalam Penghantaran dan Penerapan Berterusan, serta memastikan kelajuan, ketekalan dan kebolehpercayaan.

Mengapa Mengautomatikkan Penerapan?
Menerapkan aplikasi secara manual boleh menjadi lambat, mudah menghasilkan ralat dan tidak konsisten. Automasi menangani cabaran ini:
- Kelajuan: Terapkan ciri atau pembaikan baharu dengan pantas.
- Kebolehpercayaan: Kurangkan ralat manusia melalui proses yang diseragamkan.
- Ketekalan: Pastikan setiap penerapan mengikut langkah yang sama.
- Kecekapan: Berikan peluang kepada pembangun untuk menumpukan perhatian pada pengekodan, bukan tugas penerapan.
Peringkat Saluran Paip Penerapan
Saluran paip Jenkins biasa untuk penerapan Docker melibatkan beberapa peringkat utama:
- Bina: Bina imej Docker (dibincangkan dalam pelajaran terdahulu).
- Uji: Jalankan ujian automatik terhadap imej.
- Tolak: Tolak imej ke Pendaftaran Docker.
- Terapkan: Tarik imej daripada pendaftaran dan jalankannya pada pelayan sasaran.
- Sahkan: Sahkan bahawa penerapan baharu berfungsi dengan baik.
Hari ini kita akan menumpukan pada peringkat 'Terapkan' dan 'Sahkan'.
Penyediaan Persekitaran Sasaran
Sebelum Jenkins boleh menerapkan aplikasi, pelayan sasaran anda perlu bersedia. Biasanya, ini bermaksud:
- Docker Dipasang: Pelayan sasaran mesti mempunyai Docker Engine yang dipasang.
- Akses SSH: Jenkins memerlukan akses Shell selamat (SSH) kepada pelayan sasaran.
- Kebenaran Pengguna: Pengguna SSH memerlukan kebenaran untuk menjalankan perintah Docker.
Kami biasanya mengurus bukti kelayakan SSH dengan selamat dalam Jenkins.
Bukti Kelayakan SSH untuk Jenkins
Untuk menyambung kepada pelayan jauh, Jenkins menggunakan bukti kelayakan SSH. Biasanya, bukti kelayakan ini terdiri daripada pasangan nama pengguna SSH/kunci peribadi yang disimpan dengan selamat dalam pengurus bukti kelayakan Jenkins.
Semasa mentakrifkan saluran paip, anda boleh memberitahu Jenkins untuk menggunakan bukti kelayakan ini bagi peringkat tertentu, supaya Jenkins boleh melaksanakan perintah pada pelayan sasaran anda.
Contoh Skrip Penerapan Asas
Berikut ialah skrip shell ringkas yang boleh dilaksanakan pada pelayan sasaran untuk mengemas kini bekas Docker. Skrip ini menghentikan bekas lama, mengalih keluarnya, menarik imej baharu dan menjalankannya.
APP_NAME dan IMAGE_NAME akan dihantar sebagai pemboleh ubah persekitaran.
#!/bin/bash
# Stop and remove existing container
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true
# Pull the new Docker image
docker pull ${IMAGE_NAME}
# Run the new container
docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}
echo "Deployment of ${APP_NAME} complete!"Mengintegrasikan dengan Saluran Paip Jenkins
Dalam Jenkinsfile, anda boleh menggunakan pemalam sshPublisher atau langkah sh ringkas dengan pemajuan ejen SSH untuk melaksanakan perintah pada hos jauh. Berikut ialah rupa peringkat penerapan yang mungkin menggunakan langkah sh asas, dengan andaian SSH telah dikonfigurasikan.
agent { label 'remote-deploy-host' } bermaksud peringkat ini berjalan pada pelayan sasaran.
stage('Deploy to Production') {
agent { label 'remote-deploy-host' }
steps {
withEnv([
"APP_NAME=my-webapp",
"IMAGE_NAME=myregistry/my-webapp:latest"
]) {
sh '''
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true
docker pull ${IMAGE_NAME}
docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}
echo "Deployment successful!"
'''
}
}
}Mencapai Kemas Kini Berperingkat
Untuk penerapan tanpa masa henti, tindakan berhenti dan mula yang ringkas tidak mencukupi. Biasanya, anda akan menggunakan strategi seperti:
- Kemas Kini Berperingkat: Gantikan bekas lama dengan bekas baharu secara beransur-ansur, satu demi satu, sambil memastikan perkhidmatan kekal tersedia.
- Penerapan Biru/Hijau: Terapkan versi baharu (Hijau) bersama versi lama (Biru), kemudian tukar trafik.
Walaupun Jenkins boleh menyelaraskan strategi ini, alat seperti Docker Swarm atau Kubernetes menawarkan sokongan terbina dalam untuk strategi yang lebih maju.
Pengesahan Penerapan
Selepas penerapan, amat penting untuk mengesahkan bahawa aplikasi berjalan dengan betul. Ini boleh melibatkan:
- Pemeriksaan Kesihatan: Permintaan HTTP GET ringkas kepada titik akhir kesihatan aplikasi.
- Pemantauan Log: Periksa log bekas untuk mencari ralat.
- Ujian Integrasi: Jalankan set ujian ringkas terhadap versi yang baru diterapkan.
Saluran paip Jenkins anda boleh merangkumi peringkat 'Sahkan' untuk mengautomatikkan pemeriksaan ini.
Sahkan Pengetahuan Anda
Pertimbangkan coretan Jenkinsfile berikut untuk peringkat penerapan. Apakah tujuan utama docker stop ${APP_NAME} || true?
Imbas Kembali: Penerapan Automatik
Syabas! Anda telah mempelajari cara mendekati penerapan automatik dengan Jenkins dan Docker.
- Penerapan automatik memastikan keluaran yang pantas, boleh dipercayai dan konsisten.
- Persekitaran sasaran memerlukan Docker dan akses SSH.
- Jenkins menggunakan bukti kelayakan yang selamat untuk menyambung kepada pelayan jauh.
- Skrip penerapan biasanya menghentikan bekas lama, menarik imej baharu dan memulakan bekas baharu.
- Langkah pengesahan amat penting untuk memastikan penerapan berjaya.
Ini menamatkan kursus CI/CD dengan Jenkins & Docker kami. Teruskan berlatih untuk menguasai alat yang hebat ini!
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 “Pelaksanaan Automatik dengan Jenkins” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan DevOps, termasuk “Pelaksanaan Automatik 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 “Pelaksanaan Automatik dengan Jenkins”?
Cipta saluran paip CI/CD dalam Jenkins untuk melaksanakan bekas Docker anda ke persekitaran sasaran. 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 3 daripada 4.
Berapa lamakah pelajaran “Pelaksanaan Automatik 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
- Pengenalan kepada Jenkins
- Membina Imej Docker dengan Jenkins
- Pelaksanaan Automatik dengan Jenkins
- Pipeline Jenkins sebagai Kod dengan Jenkinsfile