$ aoox

DocsAplikasi

Mount

Menyimpan data yang harus bertahan antar deploy, mengakses path host, atau menyuntikkan file konfigurasi ke container aplikasi maupun managed database.

Jenis
Volume · Bind · File
Efek
Container dibuat ulang, tanpa build
Backup
Volume saja (manual/terjadwal, S3)

Kapan butuh mount?

Filesystem container hilang setiap deploy — container lama dihapus, yang baru dibuat dari image. Apa pun yang ditulis aplikasi ke disk harus ditaruh di mount kalau ingin bertahan.

Data yang ditulis aplikasi harus bertahan antar deploy (upload, SQLite, cache)?→ Volume
Butuh membaca/menulis folder yang sudah ada di host?→ Bind (owner/admin)
Hanya perlu menyuntikkan satu file konfigurasi?→ File

Tiga jenis mount

JenisSumberSiapaCatatan
VolumeVolume Docker aoox_app_<app>_<nama>Semua anggotaData bertahan antar deploy. Bisa di-backup.
BindPath di hostOwner/adminSetara akses filesystem host. Belum bisa di-backup.
FileIsi teks yang disimpan di aooxSemua anggotaSelalu read-only. Cocok untuk config (nginx.conf, .env statis).

Menambah mount

  1. Buka tab Mount → Tambah mount

    Pilih Jenis, isi Path di container (unik per aplikasi), lalu Nama volume / Path di host / Isi file sesuai jenis.

    JenisPath di containerSumberCatatan
    Volume/app/uploadsuploadsVolume aoox_app_shop_uploads
    Volume/datadataSQLite / cache
    Bind/srv/media/mnt/storage/mediaPath host, owner/admin
    File/etc/nginx/conf.d/app.conf(isi di textarea)Read-only
  2. Container dibuat ulang otomatis

    Setiap tambah/ubah/hapus mount memicu recreate container dari image saat ini — tanpa build. Aplikasi restart singkat; env dan domain ikut diterapkan ulang.

  3. Verifikasi

    Tab Deploy → log container menunjukkan aplikasi start ulang. Untuk memastikan path terpasang, jalankan job manual ls -la /app/uploads dengan target Di container.

Mount untuk managed database

Halaman database juga punya tab Mount dengan tiga jenis yang sama — biasanya untuk file konfigurasi engine atau volume tambahan:

EngineContoh path di containerUntuk apa
PostgreSQL/etc/postgresql/postgresql.confTuning (shared_buffers, dsb.) — sesuaikan command/entrypoint image bila perlu menunjuk file itu.
MySQL / MariaDB/etc/mysql/conf.d/custom.cnfFolder conf.d dibaca otomatis oleh image resmi.
Redis/usr/local/etc/redis/redis.confKonfigurasi kustom.
  • Setiap perubahan mount mem-provision ulang container database (restart singkat; data tetap di volume-nya).
  • Aturan peran sama: bind mount hanya owner/admin.
  • Backup volume hanya untuk mount aplikasi; volume data database sudah dicakup backup database.

Mount file

Isi file ditulis langsung di tab Mount (textarea) lalu Simpan & terapkan — praktis untuk config yang sering diubah tanpa commit ke repo.

Contoh: /etc/nginx/conf.d/app.conf
server {
  listen 80;
  location / { proxy_pass http://127.0.0.1:3000; }
}
  • Di balik layar semua file aplikasi ditulis ke satu volume khusus (aoox_app_<app>_files) lalu di-bind per path sebagai read-only.
  • Aplikasi yang perlu menulis ke file itu harus memakai volume, bukan file mount.

Menghapus mount

JenisYang terjadi
VolumeDitanya apakah volume ikut dihapus (purge). Tanpa purge, data tetap ada di Docker dan bisa dipasang lagi dengan nama yang sama.
BindHanya melepas mount; folder di host tidak disentuh.
FileMount dilepas dan isinya dihapus dari aoox.

Perilaku & batasan

  • Preview PR tidak mendapat mount — jangan berbagi volume produksi dengan branch sembarang.
  • Saat blue/green, dua container sementara memakai volume yang sama. Aplikasi yang mengunci file (SQLite tanpa WAL) sebaiknya memakai port host agar replace biasa.
  • Job dengan target Container terpisah mewarisi semua mount aplikasi — cocok untuk migrasi atau pembersihan data.
  • Bind mount dibatasi owner/admin karena setara akses filesystem host.

Backup volume

Bagian Backup volume di tab Mount: backup manual, jadwal cron, retensi, dan tujuan S3 per aplikasi. Restore = stop container → kosongkan volume → extract → start. Detail di Backup & restore.

Belum tersedia
Mount untuk stack compose (atur di file compose) dan preview; backup bind mount. Backup volume kini berjalan juga untuk aplikasi di server remote.

Langkah berikutnya

Ada yang keliru? Edit halaman ini di GitLab ↗