メインコンテンツにスキップ

Dockerfileジェネレータ

構造化された入力から本番環境対応のDockerfileを生成します。ベーススタックを選択(Node、Python、Go、Java、Ruby、PHP、Rust、.NET、Nginx、またはカスタムイメージ)し、WORKDIR、ビルドARG、環境変数、システムパッケージ、依存関係のインストール、ビルドコマンド、公開ポート、非rootユーザー、HEALTHCHECK、ExecまたはShell形式のENTRYPOINT/CMDを設定します。ブラウザで完全に実行されます。

入力

イメージ名の後に追加されるタグ(image:TAG)。

ビルド時変数。各行はARG命令になります。

実行時変数。各行はENV命令になります。

ベースイメージに応じてapk/apt-getでインストールされます。スキップする場合は空にします。

Dockerレイヤキャッシュの最適化のため最初にコピーされます。

依存ファイルがコピーされた後に実行されます。

オプション。ソース全体がコピーされた後に実行されます。

カンマで区切られたTCPポート。

オプション。実行時のユーザーを設定します。

オプション。コンテナ内で実行されるシェルコマンド。

Exec形式はJSONの配列でシェル内で実行されません。Shell形式はそのまま使用されます。

オプション。CMDが引数のみを提供する場合に使用します。

コンテナ起動時のデフォルトプロセス。

出力

生成されたDockerfile
 
役に立ちましたか?

このツールを使う他の方法

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"
  }'

ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。

AIエージェントに依頼する

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

YOUR_INPUT_HERE

IOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。

埋め込みウィジェット

<iframe
  src="https://iotools.cloud/embed/dockerfile-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="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>

ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。

API/MCP 1回あたりの費用5クレジットから
クレジットが足りませんか?料金を見る

次の方法でも利用可能

ガイド

Dockerfileジェネレータは、構造化された数個のフィールドから指示の順序とベストプラクティスを暗記する代わりに、クリーンで本番環境対応のDockerfileを構築します。ベーススタックを選択し、アプリのインストール方法と開始方法を入力し、結果をコピーします — Dockerデーモンなし、アップロードなし、ブラウザから何も出ていきません。

何をするか

Node.js、Python、Go、Java、Ruby、PHP、Rust、.NET、Nginx、Alpine、Ubuntu、Debian、または完全なカスタムイメージリファレンスのベーススタックを選択し、ツールが従来のキャッシュフレンドリーな順序で単一ステージのDockerfileを組み立てます:

  1. イメージとタグを指定したFROM
  2. ビルド時変数ARG
  3. WORKDIR
  4. ランタイム変数ENV(スペースを含む値は自動的に引用されます)
  5. Alpineイメージではapkでadd --no-cacheを使用し、他の場所ではapt-get install --no-install-recommends(aptリストのクリーンアップ付き)を使用するシステムパッケージRUN`
  6. コピー+インストール依存関係レイヤー、ソースから分離してDockerがインストール済み依存関係をキャッシュできるようにします
  7. ソースの残りの部分のためのCOPY . .
  8. オプションのビルドRUN
  9. EXPOSE、オプションの非rootユーザーUSER、オプションのHEALTHCHECK
  10. Exec形式(JSONの配列、推奨)またはShell形式のENTRYPOINTおよび/またはCMD

使い方

スタックを選択し、タグとインストール/ビルドコマンドをプロジェクトに合わせて調整します。依存ファイルが完全なソースの前にコピーされるのは意図的です:ロックファイルが変わらない限り、Dockerはキャッシュされたインストールレイヤーを再利用し、リビルドは高速です。オプションフィールドを空白のままにしてその命令をスキップしてください。プレビューに満足したら、CopyまたはDownloadを使用してプロジェクトルートにDockerfileとして保存します。

Exec形式 vs Shell形式

Exec形式(CMD ["node", "server.js"])はプロセスをPID 1として直接実行するため、SIGTERMなどのシグナルを受信してクリーンにシャットダウンします — これが推奨される理由です。Shell形式(CMD node server.js)は/bin/sh -cのコマンドをラップします。変数展開や&&などのシェル機能が必要な場合に便利ですが、runtimeとプロセスの間にシェルがある代償があります。

非rootユーザーが必要な理由は?

USERを非rootアカウントに設定すると、コンテナが侵害された場合の被害を制限します。多くの公式イメージ(例:node)には、すぐに使える非特権ユーザーが付属します。ベースイメージに適切なユーザーがない場合は、フィールドを空白のままにしてください。

マルチステージビルドを行いますか?

いいえ — このツールは単一ステージのDockerfileを生成します。これは最も一般的なケースに対応します。コンパイル言語ではビルドコマンドを追加できます。スリムな最終イメージが必要な場合は、出力をマルチステージビルドに手動で編集します。

これは有効で、構築可能なDockerfileですか?

Dockerの公式構文と広く使用されている慣例に従っていますが、コマンド(インストール、ビルド、開始)は実際のプロジェクトと一致する必要があります。出力を強固な開始点として扱い、必要に応じて調整してください。

プライバシー

すべてはブラウザでローカルに実行されます。イメージ名、環境変数、コマンド、生成されたDockerfileはアップロードまたは記録されません — ツールはデバイス上で純粋なテキスト生成を実行します。

dockerdockerfilecontainerdevopsci/cdimage

ツールが気に入りましたか?広告をなくしましょう。

1回のお支払いでアカウントから広告が完全になくなります。サブスクリプションも追跡もありません。