3 min read
Otomatisasi Build & Push Docker Image pakai GitHub Actions

Halo rekk! Jadi ceritanya, beberapa waktu lalu aku lagi iseng ngoprek project kecil buat ngetes otomatisasi.
Awalnya cuma mau nyoba build Docker image manual, tapi kok lama-lama mikir, “Lha, iki kalo bisa otomatis kan enak… tinggal push ke GitHub, cling, image langsung nyampe Docker Hub.”
Akhirnya, lahirlah sebuah CI/CD pipeline sederhana yang bikin hidupku sebagai developer jadi lebih gampang 😼⚙️

Awal Mula Cerita

Waktu itu aku lagi develop aplikasi Flask kecil-kecilan. Biasane sih, setiap ada perubahan aku rebuild manual, login Docker Hub, trus push image-nya. Ribet pol!
Dari situ aku mulai mikir: “Kenapa nggak tak serahin aja semua ke GitHub Actions?”
Jadilah alur otomatis ini:

Push ke GitHub ➡️ GitHub Actions jalan ➡️ Image dibangun ➡️ Langsung mendarat di Docker Hub 🚢

Proses Oprek

Sebelum mulai, aku siapin dulu strukturnya:

.
├── app.py                      # Aplikasi Flask sederhana
├── Dockerfile                   # Instruksi build image Docker
└── .github/
    └── workflows/
        └── docker-build.yml     # Workflow GitHub Actions

Trus, biar workflow bisa login ke Docker Hub tanpa ngasih password di file, aku simpen kredensial lewat GitHub Secrets:

  1. Masuk ke tab Settings repo

  2. Pilih Secrets and variablesActions

  3. Tambahkan dua secret penting:

    • DOCKERHUB_USERNAME
    • DOCKERHUB_TOKEN (dari Personal Access Token Docker)

Aman, terenkripsi, tinggal dipanggil di file YAML workflow.

Kenapa Cara Ini Mantul

Lewat proyek iki, aku dapet beberapa pelajaran berharga:

KeahlianManfaat
CI/CD WorkflowNgerancang alur otomatis biar proses dev lebih rapi
GitHub ActionsPaham cara bikin workflow YAML step-by-step
DockerBungkus aplikasi biar gampang dibawa kemana-mana
Secrets ManagementNyimpen kredensial tanpa takut bocor

Hasil Akhir

Sekarang, tiap kali aku push ke branch main, GitHub langsung ngerjain semua: build, login, dan push image ke Docker Hub. Nggak pake ribet, dan rasanya… puas banget! ✨

Penutup

Sejak pakai otomatisasi ini, workflow-ku jadi lebih santai. Waktu yang biasanya kepake buat “ritual” build & push manual, sekarang bisa dipake ngopi sambil mikirin fitur baru. CI/CD itu kayak asisten pribadi yang selalu siap kerja tanpa banyak tanya. Mantul rek! 🚀