Lewati ke konten utama

Generator Dockerfile

Buat Dockerfile siap produksi dengan masukan terstruktur — pilih stack dasar (Node, Python, Go, Java, Ruby, PHP, Rust, .NET, Nginx, atau image kustom), kemudian atur WORKDIR, ARG build, variabel ENV, paket sistem, pemasangan dependensi, perintah build, port yang terbuka, pengguna non-root, HEALTHCHECK, dan ENTRYPOINT/CMD dalam bentuk exec atau shell. Berjalan sepenuhnya di browser Anda.

Input

Tag yang ditambahkan setelah nama image (image:TAG).

Variabel waktu build. Setiap baris menjadi instruksi ARG.

Variabel runtime. Setiap baris menjadi instruksi ENV.

Diinstal melalui apk/apt-get berdasarkan base image. Kosongkan untuk lewati.

Disalin terlebih dahulu untuk caching layer Docker yang lebih baik.

Berjalan setelah file dependensi disalin.

Opsional. Berjalan setelah source lengkap disalin.

Port TCP yang dipisahkan koma.

Opsional. Mengatur USER untuk runtime.

Opsional. Perintah shell yang dijalankan di dalam container.

Bentuk exec adalah array JSON dan tidak berjalan dalam shell; bentuk shell digunakan verbatim.

Opsional. Gunakan ketika CMD hanya menyuplai argumen.

Proses default ketika container dimulai.

Output

Dockerfile yang Dihasilkan
 
Apakah ini membantu?

Cara lain menggunakan alat ini

REST API

curl -X POST https://api.iotools.cloud/v1/tool/dockerfile-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "stack": "node",
    "imageTag": "20-alpine",
    "workdir": "/app",
    "envVars": "NODE_ENV=production",
    "depFiles": "package.json package-lock.json",
    "installDeps": "npm ci --omit=dev",
    "exposePorts": "3000",
    "runUser": "node",
    "cmdForm": "exec",
    "cmdValue": "node server.js"
  }'

Ganti dengan kunci Anda sendiri dari akun Anda. Bidang alat menjadi isi permintaan — tanpa pembungkus.

Tanyakan ke agen AI

Use the IOTools `dockerfile-generator` tool (Dockerfile Generator) on this input:

YOUR_INPUT_HERE

Tempelkan ini ke agen mana pun yang terhubung ke server MCP IOTools, lalu tambahkan input Anda.

Widget sematan

<iframe
  src="https://iotools.cloud/embed/dockerfile-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Generator Dockerfile — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Tempelkan ini di halaman Anda sendiri — gratis, tanpa kunci, cukup tautan balik.

Biaya per panggilan API/MCPMulai dari 5 kredit
Butuh kredit lebih?Lihat harga

Juga tersedia melalui

Panduan

Generator Dockerfile membangun Dockerfile yang bersih dan siap produksi dari beberapa field terstruktur alih-alih mengingat urutan instruksi dan praktik terbaik. Pilih stack dasar, isi cara aplikasi Anda memasang dan dimulai, dan salin hasilnya — tanpa daemon Docker, tanpa unggahan, tidak ada yang meninggalkan browser Anda.

Apa yang dilakukannya

Anda memilih stack dasar (Node.js, Python, Go, Java, Ruby, PHP, Rust, .NET, Nginx, Alpine, Ubuntu, Debian, atau referensi image kustom lengkap) dan alat ini merangkai Dockerfile single-stage dalam urutan konvensional yang ramah cache:

  1. FROM dengan image dan tag Anda
  2. Variabel build-time ARG
  3. WORKDIR
  4. Variabel runtime ENV (nilai dengan spasi dikutip secara otomatis)
  5. RUN instalasi paket sistem yang menggunakan apk add --no-cache pada image Alpine dan apt-get install --no-install-recommends (dengan pembersihan daftar apt) di tempat lain
  6. Layer copy + install dependensi, dipisah dari source Anda agar Docker dapat meng-cache dependensi yang diinstal
  7. COPY . . untuk sisa source
  8. RUN build opsional
  9. EXPOSE, USER non-root opsional, HEALTHCHECK opsional
  10. ENTRYPOINT dan/atau CMD dalam bentuk exec (array JSON, direkomendasikan) atau shell

Cara menggunakannya

Pilih stack Anda, kemudian sesuaikan tag dan perintah install/build agar cocok dengan proyek Anda. File dependensi disalin sebelum source lengkap Anda dengan tujuan: selama lockfile Anda tidak berubah, Docker menggunakan kembali layer install yang di-cache dan rebuild cepat. Biarkan field opsional apapun kosong untuk menghilangkan instruksi itu. Ketika Anda puas dengan pratinjau, gunakan Copy atau Download untuk menyimpannya sebagai Dockerfile di root proyek Anda.

Bentuk exec vs bentuk shell

Bentuk exec (CMD ["node", "server.js"]) menjalankan proses Anda langsung sebagai PID 1, jadi menerima sinyal seperti SIGTERM dan berhenti dengan bersih — ini sebabnya direkomendasikan. Bentuk shell (CMD node server.js) membungkus perintah dalam /bin/sh -c, yang berguna ketika Anda membutuhkan fitur shell seperti ekspansi variabel atau &&, dengan biaya shell duduk di antara runtime dan proses Anda.

Mengapa user non-root?

Menetapkan USER ke akun non-root membatasi radius ledakan jika container dikompromikan. Banyak image resmi (seperti node) mengirim user unpriviledged yang sudah siap pakai. Biarkan field kosong jika image base Anda tidak memiliki user yang sesuai.

Apakah itu melakukan build multi-stage?

Tidak — alat ini menghasilkan Dockerfile single-stage, yang mencakup kasus paling umum. Untuk bahasa yang dikompilasi Anda masih dapat menambahkan perintah build; untuk image final yang lebih ramping Anda akan mengedit tangan output menjadi build multi-stage.

Apakah ini Dockerfile yang valid dan dapat dibangun?

Ini mengikuti sintaks resmi Docker dan konvensi yang banyak digunakan, tetapi perintah (install, build, start) harus cocok dengan proyek aktual Anda. Perlakukan output sebagai titik awal yang kuat dan sesuaikan sesuai kebutuhan.

Privasi

Semuanya berjalan secara lokal di browser Anda. Nama image, variabel lingkungan, perintah, dan Dockerfile yang dihasilkan tidak pernah diunggah atau dicatat — alat melakukan pembuatan teks murni di perangkat Anda.

dockerdockerfilecontainerdevopsci/cdimage

Suka alat-alatnya? Hilangkan iklannya.

Satu kali pembayaran menghapus semua iklan dari akun Anda, selamanya. Tanpa langganan, tanpa pelacakan.