$ aoox

DocsInfrastruktur

Registry

Registry lokal tempat image hasil build disimpan (prasyarat deploy), registry eksternal, dan pemeliharaan disk.

Registry lokal
Wajib — tempat image hasil build
Registry eksternal
Kredensial untuk registry lain
Pemeliharaan
Retensi per aplikasi + cleanup malam

Peran registry dalam deploy

  1. 01buildimage dibuat oleh daemon Docker
  2. 02push→ localhost:5000/<project>/<app>:<id>
  3. 03runcontainer dibuat dari image itu
  4. 04rollbackimage lama ditarik lagi dari registry

Setiap deploy mem-push image ke registry lokal dan rollback menariknya kembali dari sana. Karena itu registry harus di-provision sebelum deploy pertama — tanpa itu deploy gagal dengan pesan No self-hosted registry. Aplikasi di server remote tidak memakai registry (image tetap di daemon server).

Registry lokal

  1. Menu Registry → tab Registry lokal → Provision registry (owner)

    aoox menjalankan registry:3 sebagai container aoox-registry dengan autentikasi htpasswd, data di volume aoox_registry_data, dan penghapusan tag diaktifkan. Kartu menampilkan status Registry siap, container, dan URL.

  2. Simpan kredensial yang ditampilkan sekali

    Username aoox dan password acak hanya tampil sekali — klik Sudah saya simpan setelah mencatatnya. Deploy dari dashboard tidak membutuhkannya; kredensial ini untuk push manual dari mesin lain.

Push manual dari host
docker login localhost:5000 -u aoox
docker tag myimage:latest localhost:5000/tools/myimage:1.0
docker push localhost:5000/tools/myimage:1.0
Env (.env.dist)DefaultKeterangan
REGISTRY_PORT5000Port host registry.
REGISTRY_PUBLIC_HOSTlocalhostHost yang dipakai docker push. localhost dikecualikan dari aturan insecure-registry Docker; host lain butuh TLS (reverse proxy) atau entri insecure-registries di daemon.json setiap daemon yang mem-push.

Melihat & membersihkan isi

  • Tab Registry lokal menampilkan repository → tag beserta digest dan ukuran. Nama repository = <project-slug>/<app-slug>.
  • Hapus tag = hapus manifest. Tag lain yang menunjuk digest sama ikut hilang — UI memperingatkan.
  • Garbage collect (owner) mengembalikan ruang disk setelah tag dihapus — dijalankan di dalam container registry yang sedang berjalan; ada mode dry run untuk melihat apa yang akan dihapus.
  • Menghapus tag yang masih dipakai container berjalan tidak menghentikannya, tapi rollback ke versi itu tidak lagi bisa.
  • Hapus registry (owner) menghentikan container; volume data ditanyakan. Deploy tidak bisa dilakukan sampai di-provision lagi.

Pemeliharaan disk

Supaya disk tidak penuh oleh image lama, aoox punya cleanup otomatis yang berjalan tiap malam pukul 04:30 (UTC) dan bisa dipicu manual.

Yang dibersihkanAturan
Deployment lama per aplikasiField Riwayat deployment di Pengaturan aplikasi (default 10): deployment sukses di luar jumlah ini dipangkas, image-nya dihapus lokal dan dari registry. Image yang sedang dipakai tidak pernah disentuh.
Deployment gagal/queuedBaris (log saja) lebih tua dari 30 hari dihapus.
Dangling image & build cacheDihapus di daemon lokal — tidak menyentuh image aplikasi.
RegistryGarbage collect dijalankan setelah pemangkasan.
  1. Settings → Disk Docker

    Kartu menampilkan pemakaian image, container, volume, build cache, berapa yang bisa direklamasi, jumlah deployment yang bisa dipangkas, dan laporan cleanup terakhir.

  2. Bersihkan sekarang (owner)

    Menjalankan siklus yang sama secara on-demand. Laporan: deployment dipangkas, image dihapus, byte direklamasi, status GC registry, dan error bila ada.

Menurunkan Riwayat deployment mengurangi pilihan rollback. Untuk aplikasi penting, pertahankan ≥ 5; pemangkasan baru terjadi pada cleanup berikutnya.

Registry eksternal

Tab Registry eksternal → Tambah registry (owner/admin): daftarkan kredensial Docker Hub, GHCR, GitLab, dsb.

FieldContoh
NamaGHCR perusahaan
URLghcr.io
Username / Password / tokenToken dengan akses baca (dan tulis bila perlu); disimpan terenkripsi
Image prefixOpsional, mis. myorg → image dirujuk sebagai <url>/<prefix>/<app>
Belum dipakai pipeline
Saat ini pipeline deploy selalu mem-push ke registry lokal; registry eksternal baru bisa didaftarkan dan dites koneksinya. Dukungan men-deploy dari image di registry eksternal sedang dikerjakan.

Jebakan umum

GejalaPenyebab & solusi
Deploy gagal: No self-hosted registryProvision registry lokal dulu.
Push manual: http: server gave HTTP response to HTTPS clientREGISTRY_PUBLIC_HOST bukan localhost tanpa TLS. Tambahkan ke insecure-registries atau pasang reverse proxy TLS.
Disk tetap penuh setelah hapus tagJalankan Garbage collect, atau Bersihkan sekarang di Settings → Disk Docker.
Rollback gagal: image not foundTag sudah dipangkas oleh retensi atau dihapus manual. Deploy ulang commit tersebut.
Kartu Registry: Docker tidak terjangkauDOCKER_GID salah atau socket tidak di-mount — lihat Troubleshooting.

Langkah berikutnya

Ada yang keliru? Edit halaman ini di GitLab ↗