Langsung ke konten

Rencana Build (Dockerfile & zbpack) ​

Layanan Git dibangun di mesin build Zenavo dengan BuildKit. Cara sebuah layanan dibangun adalah rencana build-nya, yang bisa Anda pratinjau sebelum deploy.

Dockerfile ​

Jika direktori root layanan berisi Dockerfile, file itu dipakai apa adanya. Atur path lain di Advanced Settings → Dockerfile path saat menambahkan layanan, atau nanti di tab Settings layanan → Dockerfile (misalnya deploy/api.Dockerfile, relatif terhadap direktori root).

zbpack ​

Tanpa Dockerfile, zbpack mendeteksi bahasa dan framework lalu membuatkannya. zbpack mendukung Node.js, Bun, Deno, Python, Go, PHP, Ruby, Java, Rust, .NET, situs statis, dan lainnya. zbpack juga dipakai bila repositori punya file zbpack.json, atau layanan punya variabel lingkungan ZBPACK_*, yang mengatur zbpack (misalnya perintah build dan start-nya).

Image yang dibangun zbpack mendengarkan di port 8080, jadi itulah port HTTP layanan kecuali Anda mengatur yang lain.

zbpack options ​

Di tab Settings layanan → Build → zbpack options, masukkan satu KEY=value per baris:

  • Kunci yang diawali ZBPACK_, seperti ZBPACK_BUILD_COMMAND=npm run build atau ZBPACK_START_COMMAND=node dist/server.js, diteruskan ke zbpack sebagai variabel. Kunci ini lebih diutamakan daripada variabel ZBPACK_* di tab Variables.
  • Kunci lain ditulis ke zbpack.<service>.json di direktori root, sama seperti file zbpack.json di repositori. Nilai yang ditulis sebagai JSON ({…}, […], true, atau false) mempertahankan tipenya.

Mengatur opsi zbpack apa pun membuat layanan dibangun dengan zbpack, bahkan bila direktori root punya Dockerfile.

Argumen build ​

Di tab Settings → Build → Build arguments, masukkan satu KEY=value per baris. Masing-masing diteruskan ke build: Dockerfile Anda sendiri membacanya dengan baris ARG bernama sama, dan di Dockerfile buatan zbpack, Zenavo menambahkan baris ARG itu ke setiap stage yang menjalankan perintah. Variabel di tab Variables tidak otomatis diteruskan ke build; untuk memakainya, rujuk dengan ${KEY}, misalnya VITE_API_URL=${API_URL}.

Nilainya disembunyikan di log build, tetapi sebuah nilai bisa dibaca dari riwayat image yang dibangun bila stage yang mendeklarasikannya ada di image akhir, dan dari output bila build menuliskannya di sana. Teruskan rahasia sebagai argumen build hanya bila build membutuhkannya.

Direktori root ​

Untuk monorepo, atur Root Directory ke folder layanan, seperti /apps/api, saat menambahkan layanan atau nanti di tab Settings. Build memakai folder itu sebagai konteksnya, baik untuk Dockerfile maupun zbpack. Folder itu harus berada di dalam repositori.

Untuk men-deploy ulang hanya saat folder itu berubah, atur watch paths layanan.

Di manifest ​

Tab Settings menyimpan field berikut dari source layanan di manifest proyek; Anda juga bisa mengaturnya di manifest yang diekspor atau diimpor:

json
"source": {
  "git": "https://github.com/acme/mono",
  "ref": "main",
  "context": "apps/api",
  "dockerfile": "Dockerfile",
  "build_args": { "NODE_ENV": "production" },
  "zbpack": { "ZBPACK_BUILD_COMMAND": "npm run build" },
  "auto_deploy": true,
  "watch_paths": ["apps/api/", "packages/shared/"]
}

Build Plan Preview ​

Pratinjau meng-clone branch dan melaporkan apa yang akan dipakai build, tanpa membangun atau menjalankan apa pun:

BarisContoh
ProviderDockerfile, go, nodejs, python…
VersionsGo Version 1.26.1, Node.js Version 22
PortDari EXPOSE Dockerfile, atau 8080 untuk zbpack

Batas ​

Build berbagi mesin build Zenavo dan masuk antrean saat mesin sibuk. Satu build, termasuk clone, boleh berjalan selama batas build terlama paket: 15 menit di Free, 30 di Dev, dan 60 di Pro, Team, dan Enterprise; clone sendiri dibatasi 10 menit. Build yang mencapai batas dihentikan, deploy gagal, dan menitnya tetap dihitung. Lihat Penggunaan & Tagihan untuk menit build per paket.

Tidak berafiliasi dengan Zeabur.