Renovate automated Docker image version pinning

Bayangkan skenarionya. Stack compose homelab telah berjalan lancar selama enam bulan. Jellyfin, Paperless, Immich, Postgres, yang biasa. Pagi Sabtu kami menjalankan docker compose pull && docker compose up -d, mengharapkan operasi tanpa perubahan lima detik yang sama dengan biasanya. Postgres menolak untuk memulai. Lognya mengatakan direktori data pada disk diinisialisasi oleh versi major yang lebih lama dan tidak dapat dibaca oleh versi baru. Itulah yang kami dapatkan dari mematok :latest. Tag :latest bukan versi, itu adalah penanda yang pemelihara pindahkan kapan saja mereka mau, dan hari ketika itu menunjuk ke Postgres 17 alih-alih Postgres 16 adalah hari akhir pekan Anda hilang. Di bawah ini adalah aplikasi terbaik untuk mematok versi image Docker yang kami masih percayai pada 2026, dari otomasi penuh hingga notifikasi sederhana.

Mengapa :latest adalah footgun, dalam satu paragraf

Dua host menarik :latest yang sama dengan jarak seminggu dan berakhir menjalankan build yang berbeda. Pekerjaan CI yang dibuat enam bulan lalu dibangun ulang hari ini dan menarik perubahan breaking upstream yang tidak ada yang membaca changelog-nya. Rollback adalah perburuan peti harta karun karena riwayat tag Docker Hub menghilang. Perbaikannya membosankan dan berhasil: mematok tag semver yang Anda pilih dengan sengaja (postgres:16.4), atau lebih baik, mematok image digest (postgres@sha256:...) sehingga Anda mendapatkan byte yang tepat setiap kali. Alat di bawah ini baik secara otomatis melakukan pemikatan itu untuk kami, atau mengawasi pemikatan kami saat ini dan memberi tahu kami kapan aman untuk naik.

Apa yang harus dicari dalam alat pemikatan versi Docker

Lima hal penting saat kami memilih satu:

Tabel perbandingan

Alat Terbaik untuk Pembaruan otomatis Hanya notifikasi Penyiapan
Renovate Repo compose atau K8s berbasis git Ya (melalui PR) Ya Sedang
Watchtower Kontainer homelab stateless Ya (live pull) Ya Sangat mudah
Diun Alert-only untuk registry apa pun Tidak Ya Mudah
What’s up Docker Web UI + notifikasi untuk homelabs Opsional Ya Mudah
Portainer Tim yang lebih suka GUI Manual per stack Ya Mudah
Dependabot Repo GitHub publik dengan file compose Ya (melalui PR) Tidak Nol
Trivy Audit versi dengan prioritas keamanan Tidak Ya (laporan) Mudah
Podman Desktop Workflow Podman dan K8s-adjacent Manual Ya Mudah

Alatnya

1. Renovate

Renovate adalah jawaban terdekat di sini. Arahkan ke repo yang berisi docker-compose.yaml, Dockerfile, overlay Kustomize, atau chart Helm, dan ia membuka pull request setiap kali image mendapat tag baru. Ia memahami pemikatan digest, jadi kami dapat mematok postgres:16.4@sha256:... dan Renovate akan menjaga kedua bagian tetap sinkron. Aturan pengelompokan memungkinkan kami menggabungkan rilis patch menjadi satu PR sambil membuat bump major terpisah, yang cocok dengan cara sebagian besar kami benar-benar ingin meninjau perubahan. Self-hosted atau di app hosted gratis Mend, mesin yang sama. Kurva pembelajaran itu nyata (file konfignya adalah JSON5 dengan banyak tombol), tetapi setelah berjalan, itu adalah alat yang paling andal untuk menjaga homelab tetap jujur.

Unduh: Website

2. Watchtower

Watchtower adalah klasik. Letakkan ke file compose, beri tahu kontainer mana yang harus dipantau, dan akan menarik image baru dan membuat ulang kontainer di tempat. Itu adalah superpower untuk layanan stateless (reverse proxy, alat ephemeral) dan ranjau darat untuk stateful (database, apa pun dengan skema). Cara yang tepat untuk menjalankan Watchtower pada 2026 adalah dengan daftar putih label, notifikasi aktif, dan aturan keras bahwa tidak ada yang memiliki data persisten ada di daftarnya. Digunakan seperti itu, itu masih cara tercepat untuk menjaga 80 persen membosankan dari homelab tetap segar tanpa mengasuh.

Unduh: Website

3. Diun (Docker Image Update Notifier)

Diun melakukan satu hal. Ini mengawasi image (dari label Docker, file compose, layanan Swarm, cluster Kubernetes, daftar YAML statis) dan mengirim notifikasi ketika tag atau digest baru muncul. Tidak ada pulling, tidak ada restarting, hanya pesan di Discord, Slack, Gotify, Ntfy, Matrix, email, atau webhook. Untuk homelabbers yang ingin tetap dalam loop tetapi selalu memutuskan sendiri kapan harus update, Diun adalah pilihan default. Itu adalah satu biner Go, konfignya adalah file YAML pendek, dan ia tidak pernah lupa apa pun.

Unduh: Website

4. What’s up Docker (WUD)

WUD adalah penerus modern untuk niche “watch and notify”. Ini memiliki web UI yang menampilkan setiap kontainer yang dilacaknya, tag saat ini, tag terbaru yang tersedia, dan link diff jika memungkinkan. Ini mendukung backend notifikasi biasa ditambah Home Assistant, Apprise, dan MQTT, yang berarti cocok ke dashboard smart-home dengan rapi. Dapat memicu update melalui Docker, Kubernetes, atau webhook HTTP, jadi kami dapat menghubungkannya ke pipeline rilis apa pun yang sudah kami gunakan. Untuk siapa pun yang menyukai Diun tetapi ingin layar untuk dilihat, WUD adalah upgrade.

Unduh: Website

5. Portainer

Portainer adalah GUI untuk Docker dan Kubernetes, dan tampilan stacknya menampilkan tag image yang kami jalankan berdampingan dengan apa yang tersedia. Itu tidak akan membuka pull request atau menulis pemikatan digest untuk kami, tetapi itu membuat pin terlihat dan tombol update eksplisit, yang penting ketika orang yang memelihara homelab bukan orang yang menyiapkannya. Community Edition gratis dan mencakup semua yang dibutuhkan sebagian besar self-hosters. Business Edition menambahkan RBAC dan manajemen multi-cluster untuk tim.

Unduh: Website

6. Dependabot

Jika file compose kami berada di repo publik atau GitHub-hosted, Dependabot gratis dan membutuhkan hampir tidak ada setup. Aktifkan itu, tambahkan dependabot.yml dua baris dengan package-ecosystem: docker, dan itu membuka pull request kapan pun FROM image:tag di tree mendapat tag baru. Itu lebih sempit daripada Renovate (tidak ada pengelompokan, tidak ada sinkronisasi digest, lebih sedikit ekosistem), tetapi untuk tim yang sudah tinggal di PR GitHub, itu adalah jalan hambatan paling sedikit. Renovate menang di fitur, Dependabot menang di gesekan.

Unduh: Website

7. Trivy

Trivy adalah pemindai kerentanan, bukan updater, tetapi itu termasuk dalam daftar ini karena setengah dari alasan kami mematok versi adalah mengetahui CVE mana yang kami benar-benar rentan. Arahkan Trivy ke kontainer yang berjalan, file compose, atau namespace Kubernetes, dan itu mencetak setiap CVE yang dikenal terhadap tag image yang tepat. Output membuat jelas kapan pin sudah tua dengan buruk, dan itu berpasangan sempurna dengan Renovate: Trivy mengatakan image mana yang perlu update dan mengapa, Renovate membuka PR yang melakukannya. Berjalan sebagai CLI, langkah CI, atau operator Kubernetes, semuanya dari biner yang sama.

Unduh: Website

8. Podman Desktop

Untuk siapa pun yang pindah ke Podman (atau menjalankan Docker di macOS melalui runtime yang lebih ringan), Podman Desktop mencakup tanah yang sama Portainer lakukan untuk Docker. Itu menampilkan kontainer lokal dengan tag image saat ini mereka, menunjukkan update, dan berbicara manifest Kubernetes native, yang berguna ketika homelab setengah jalan ke k3s. Itu bukan scheduler dan itu tidak berpendapat tentang pemikatan, tetapi itu membuat pin saat ini jelas dan perbedaan antara lokal dan registry satu klik jauh. Gratis, open-source, dan lintas platform.

Unduh: Website

Cara memilih yang tepat

Jawabannya hampir selalu dua dari ini, bukan satu.

Pasangkan notifier atau PR bot dengan auditor dan masalah “stack compose yang berjalan bersih selama enam bulan dan kemudian meledak” berhenti terjadi.

FAQ

Mengapa mematok ke :latest buruk?

Karena :latest bukan versi. Itu adalah penunjuk bergerak yang pemelihara image ubah kapan pun mereka menerbitkan build baru. Dua server yang menarik image:latest seminggu terpisah menjalankan binary berbeda, dan rebuild berbulan-bulan kemudian dapat menarik perubahan breaking upstream secara diam-diam. Mematok tag spesifik seperti :1.24.2, atau lebih baik digest seperti @sha256:..., berarti input yang sama selalu menghasilkan kontainer yang sama.

Haruskah saya mematok Docker image ke digest?

Untuk apa pun yang menyentuh production atau data stateful, ya. Digest adalah hash konten immutable dari image spesifik, jadi postgres:16.4@sha256:abc... akan selalu menarik byte yang tepat sama bahkan jika pemelihara nanti republish tag 16.4 dengan build berbeda. Renovate dan What’s up Docker keduanya memahami pin digest dan akan menjaganya diperbarui untuk kami, yang menghilangkan keberatan biasa “digest tidak nyaman untuk dipertahankan dengan tangan”.

Apa perbedaan antara Renovate dan Dependabot untuk Docker?

Keduanya membuka pull request ketika image mendapat tag baru. Renovate menangani lebih banyak format (Compose, Helm, Kustomize, manifest Kubernetes, GitHub Actions, Dockerfile), mendukung pemikatan digest, dan memungkinkan kami mengelompokkan update sehingga bump patch mendarat bersama sementara major tetap terpisah. Dependabot lebih sederhana untuk diaktifkan di GitHub, terintegrasi native dengan tab keamanan, dan mencakup kasus Dockerfile dan compose umum. Di repo sibuk Renovate layak konfigurasi ekstra; di repo personal Dependabot adalah kemenangan dua menit.

Dapatkah Watchtower merusak kontainer saya?

Ya, dan ia melakukannya, kapan pun kami menunjuknya ke layanan stateful. Jika image melompat versi major dan migrasi skema one-way, Watchtower dengan senang hati akan menariknya, restart kontainer, dan meninggalkan kami dengan database yang tidak akan boot. Perbaikannya adalah menggunakan filter label-nya sehingga ia hanya menyentuh kontainer yang membawa label com.centurylinklabs.watchtower.enable=true eksplisit, dan jangan pernah menempatkan label itu di apa pun yang memiliki data.

Apakah Renovate gratis untuk homelab self-hosted?

Ya. Renovate CLI dan Docker image adalah open-source dan gratis untuk dijalankan terhadap repo apa pun, termasuk instans Gitea atau GitLab self-hosted. Mend juga menawarkan app hosted gratis untuk repo GitHub publik sehingga kami tidak harus menjalankan scheduler sendiri. Tier berbayar ada untuk organisasi yang menginginkan hosting backed-SLA, tetapi homelab tidak pernah membutuhkannya.

Apakah saya memerlukan notifier dan scanner?

Mereka menjawab pertanyaan berbeda. Notifier atau PR bot (Renovate, Diun, WUD, Dependabot) memberi tahu kami “versi baru ada”. Scanner (Trivy) memberi tahu kami “versi yang kami jalankan memiliki CVE yang dikenal”. Pin bisa saat ini dan masih rentan, atau lama dan masih aman. Menjalankan satu dari masing-masing mencakup kedua sudut tanpa banyak overlap.