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.
Tiga jenis mount
| Jenis | Sumber | Siapa | Catatan |
|---|---|---|---|
| Volume | Volume Docker aoox_app_<app>_<nama> | Semua anggota | Data bertahan antar deploy. Bisa di-backup. |
| Bind | Path di host | Owner/admin | Setara akses filesystem host. Belum bisa di-backup. |
| File | Isi teks yang disimpan di aoox | Semua anggota | Selalu read-only. Cocok untuk config (nginx.conf, .env statis). |
Menambah mount
Buka tab Mount → Tambah mount
Pilih Jenis, isi Path di container (unik per aplikasi), lalu Nama volume / Path di host / Isi file sesuai jenis.
Jenis Path di container Sumber Catatan 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 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.
Verifikasi
Tab Deploy → log container menunjukkan aplikasi start ulang. Untuk memastikan path terpasang, jalankan job manual
ls -la /app/uploadsdengan 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:
| Engine | Contoh path di container | Untuk apa |
|---|---|---|
| PostgreSQL | /etc/postgresql/postgresql.conf | Tuning (shared_buffers, dsb.) — sesuaikan command/entrypoint image bila perlu menunjuk file itu. |
| MySQL / MariaDB | /etc/mysql/conf.d/custom.cnf | Folder conf.d dibaca otomatis oleh image resmi. |
| Redis | /usr/local/etc/redis/redis.conf | Konfigurasi 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.
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
| Jenis | Yang terjadi |
|---|---|
| Volume | Ditanya apakah volume ikut dihapus (purge). Tanpa purge, data tetap ada di Docker dan bisa dipasang lagi dengan nama yang sama. |
| Bind | Hanya melepas mount; folder di host tidak disentuh. |
| File | Mount 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.
Langkah berikutnya
Ada yang keliru? Edit halaman ini di GitLab ↗