Membangun Image Docker dengan Jenkins
Konfigurasikan tugas Jenkins agar otomatis membangun dan mengirim image Docker ke registri saat kode berubah.
Membangun Image Docker dengan Jenkins adalah pelajaran Docker & DevOps Fundamentals gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. 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 Docker & DevOps Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.
Mengotomatiskan Build Docker
Membuat citra Docker secara manual dapat berlangsung lambat, tidak konsisten, dan rentan terhadap kesalahan. Hal ini terutama berlaku dalam lingkungan tim atau ketika Anda sering melakukan perubahan kode.
Otomatisasi adalah kunci untuk pengiriman perangkat lunak yang andal dan efisien. Dalam pelajaran ini, kita akan mempelajari cara mengintegrasikan Jenkins dengan Docker untuk mengotomatiskan pembuatan dan pengiriman citra.

Prasyarat Jenkins dan Docker
Agar Jenkins dapat membuat citra Docker, Jenkins perlu berinteraksi dengan daemon Docker. Artinya, klien Docker harus dipasang pada mesin atau agen tempat pekerjaan Jenkins Anda akan dijalankan.
Anda juga memerlukan:
- Server Jenkins yang sedang berjalan (dari Pelajaran 1)
- Akses ke registri Docker (misalnya, Docker Hub)
- Aplikasi contoh dan Dockerfile-nya
Menginstal Docker di Host Jenkins
Agar Jenkins dapat menjalankan perintah Docker, pastikan Docker telah diinstal dan dikonfigurasi di server atau agen Jenkins. Pengguna Jenkins sering kali memerlukan izin untuk berinteraksi dengan daemon Docker.
Berikut cara menyiapkannya 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 jenkinsMengamankan Kredensial Registri
Untuk mengirim image ke registri Docker, Jenkins memerlukan kredensial. Kredensial tersebut harus disimpan dengan aman, bukan langsung di Jenkinsfile atau konfigurasi pekerjaan Anda.
Fitur Kredensial bawaan Jenkins sangat cocok untuk keperluan ini:
- Buka Kelola Jenkins > Kelola Kredensial.
- Tambahkan kredensial Nama pengguna dengan kata sandi baru untuk registri Docker Anda.
- Berikan ID yang deskriptif (misalnya,
dockerhub-credentials) untuk digunakan sebagai referensi nanti.
Aplikasi Flask Contoh
Mari gunakan aplikasi Flask Python yang sangat sederhana. Kita akan menempatkannya dalam file bernama app.py. Aplikasi ini akan menampilkan pesan dasar 'Hello'.
Kita juga memerlukan file requirements.txt untuk menentukan dependensi Python.
# 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.2Membuat Dockerfile
Selanjutnya, kita akan mendefinisikan image Docker menggunakan Dockerfile. File ini akan memberi tahu Docker cara membangun image aplikasi kita.
Tempatkan Dockerfile ini di direktori yang sama dengan app.py dan requirements.txt.
# 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"]Pekerjaan Jenkins: Langkah Build
Sekarang, mari konfigurasikan pekerjaan Jenkins Freestyle. Di bagian Langkah Build, tambahkan langkah Jalankan shell. Perintah ini akan membangun image Docker Anda.
Ingatlah untuk mengganti yourusername dengan nama pengguna Docker Hub atau jalur registri Anda.
# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .Pekerjaan Jenkins: Langkah Login & Push
Setelah membangun image, kita perlu mengirimkannya ke registri Docker. Biasanya, hal ini memerlukan proses login. Kita akan menggunakan kredensial yang disimpan sebelumnya.
Tambahkan langkah Jalankan shell lainnya. Jenkins akan memasukkan kredensial sebagai variabel lingkungan (misalnya, DOCKER_USER, DOCKER_PASS) jika dikonfigurasi dengan benar.
# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latestMengotomatiskan Pemicu Build
Kekuatan CI/CD berasal dari otomatisasi. Jenkins dapat secara otomatis memicu pekerjaan build dan push ini berdasarkan berbagai peristiwa:
- Pemungutan SCM: Jenkins memeriksa repositori Git Anda secara berkala untuk mencari commit baru.
- Webhook: Penyedia Git Anda (GitHub, GitLab, Bitbucket) mengirimkan notifikasi ke Jenkins setiap kali kode dikirim.
- Proyek Hulu: Dipicu setelah pekerjaan Jenkins lain berhasil diselesaikan.
Menguji Pekerjaan Jenkins
Setelah mengonfigurasi langkah build dan pemicu, simpan pekerjaan Jenkins Anda. Anda dapat memicu build secara manual untuk mengujinya. Perhatikan keluaran konsol untuk memastikan image Docker berhasil dibangun dan dikirim.
Proses yang berhasil berarti pipeline CI Anda kini dapat secara otomatis menghasilkan dan menyimpan image Docker baru setiap kali kode Anda berubah!
Pemeriksaan Singkat
Anda telah menyiapkan pekerjaan Jenkins untuk membangun dan mengirim image Docker. Repositori Git Anda memiliki perubahan kode baru.
Rangkuman: Build & Push
Kerja bagus! Dalam pelajaran ini, Anda telah mempelajari cara:
- Menyiapkan lingkungan Jenkins agar dapat berinteraksi dengan Docker.
- Mengelola kredensial registri Docker di Jenkins dengan aman.
- Mengonfigurasi pekerjaan Jenkins untuk membangun image Docker menggunakan Dockerfile.
- Mengirim image yang baru dibangun ke registri Docker.
- Memahami berbagai cara untuk memicu build otomatis.
Mengotomatiskan langkah-langkah ini merupakan bagian inti dari Integrasi Berkelanjutan dan menjadi dasar bagi Pengiriman Berkelanjutan!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membangun Image Docker dengan Jenkins” gratis?
Ya — teks lengkap “Membangun Image Docker dengan Jenkins” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Docker & DevOps Fundamentals, upgrade ke CoddyKit PRO. Kursus Docker & DevOps Fundamentals mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membangun Image Docker dengan Jenkins”?
Konfigurasikan tugas Jenkins agar otomatis membangun dan mengirim image Docker ke registri saat kode berubah. Kamu berlatih Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?
Tidak diperlukan pengalaman sebelumnya. Docker & DevOps Fundamentals 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 4.
Berapa lama pelajaran “Membangun Image Docker dengan Jenkins” 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 Docker & DevOps Fundamentals ini?
Ya. Setiap pelajaran Docker & DevOps Fundamentals 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
- Pengantar Jenkins
- Membangun Image Docker dengan Jenkins
- Penerapan Otomatis dengan Jenkins
- Pipeline Jenkins sebagai Kode dengan Jenkinsfile