Dockerfile Studio

Dockerfile を貼り付けると、構文・ステージ・よくある誤りを調べ、秘密らしい値や curl | sh などの確認したい点を一覧にします。整形と、Node.js・Python・Go・静的サイト・Java の雛形の生成もできます。ビルドはせず、入力は端末の外へ送りません。

端末内で処理・アップロードなしスマホ対応オフライン対応ベータ

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

実行はしません。ビルド・イメージの取得・脆弱性の確認はしません。入力は端末の外へ送りません。

Dockerfile(貼り付け・ファイル)
0 文字0 行
結果
左に Dockerfile を入力すると、ここに結果が出ます。「サンプル」で試せます。

左に Dockerfile を入力すると、ここに結果が出ます。「サンプル」で試せます。

使い方

  1. Dockerfile

    Dockerfile を貼る

  2. 構文・よくある誤り
    ENV の秘密・curl | sh確認点として指摘

    誤りと秘密を確かめる

  3. 整形した Dockerfile
    Node.js・Python 向け

    整形か、言語ごとに生成

Dockerfile を貼ると、よくある誤りを確かめて整えられる流れ
  1. 上の「使い方」で「解析・指摘」「整形」「生成」を選びます。

  2. 「解析・指摘」「整形」は左の入力欄に Dockerfile を貼り付けるか、「ファイルを開く」で読み込みます。「サンプル」で試せます。

  3. 右の「指摘」には、構文・よくある誤り・確認したい点が行番号つきで並びます。「結果」にはステージの一覧(解析)か整形後の Dockerfile が出ます。

  4. 「生成」では、テンプレート・ベースイメージ・ポート・ユーザー ID などを入力すると、Dockerfile が右に出ます。注意の一覧も読んでください。

  5. 「コピー」か「ダウンロード」で保存します。出力を docker build で確かめてください。

できること

字句解析と構文の確認

行継続(\ や `)、ヒアドキュメント(<<EOF)、# syntax= と escape= のパーサーディレクティブ、ARG の展開、マルチステージの FROM ... AS を読みます。EXPOSE の範囲や未知の命令も指摘します。

よくある誤りの検査

FROM のタグなし・latest、apt-get と apk の版の固定、apt のキャッシュ削除と --no-install-recommends、ADD より COPY、CMD と ENTRYPOINT の JSON 形式、pipefail、最後の USER が root か、RUN の連続、相対の WORKDIR、HEALTHCHECK の有無を調べます。

セキュリティの確認点

ENV・ARG・RUN の秘密らしい値(値は表示しません)、COPY . と .dockerignore、curl | sh、sudo、root での実行、--privileged などが必要そうな操作、http:// からの取得、ADD の URL を「確認したい点」として挙げます。断定はしません。

整形

命令の大文字化、続き行のインデント、連続した空行の整理を行います。秘密らしい値は既定で *** に置き換えて出力します(オフにもできます)。

テンプレートからの生成

Node.js・Python・Go・静的サイト(nginx)・Java(Maven)の雛形を、マルチステージ・数値のユーザー ID・キャッシュの効く COPY の順・HEALTHCHECK の有無を選んで作ります。起動コマンドは JSON 配列にし、改行や引用符で命令が混ざらないようにしています。

判定の根拠を見せる

指摘ごとに規則の名前と行番号を出します。DL の番号は hadolint の規則番号を参考の名前として付けたものですが、ルールはこのツールの自前の実装です。

こんなときに

  • README にある Dockerfile の書き方が今の作法に合っているか見たい
  • 公開前の Dockerfile に、ENV の秘密や curl | sh、root での実行が残っていないか確かめたい
  • FROM のタグ・apt や apk の版の固定・キャッシュの削除を確かめたい
  • Node.js や Python の Dockerfile を、マルチステージと非 root の形で始めたい
  • 整形して、続き行のインデントと命令の大文字をそろえたい

対応形式

入力

Dockerfile.dockerfileContainerfile(中身が Dockerfile の形式のもの).txt

出力

Dockerfile(整形・生成)指摘(画面に表示・コピー)

対応状況

機能対応補足
構文(行継続・ヒアドキュメント・ARG 展開・マルチステージ)の読み取り対応Docker の仕様に沿って読みます。BuildKit の内部実装とは一致しない場合があります
よくある誤りの指摘(hadolint の主な規則の一部)一部対応DL 番号を参考に付けた自前の規則です。hadolint の全規則や完全な互換ではありません
ENV・ARG・RUN の秘密らしい値の検出一部対応KEY=値 などの形と既知の形式だけを対象にします。見逃しや誤検出があり、値は表示しません
確認したい点(curl | sh・sudo・root・特権の操作など)一部対応書かれた内容から挙げるだけで、安全かどうかは判定しません
整形(命令の大文字化・インデント)対応命令の意味は変えません。アンカーのない範囲での整形です
テンプレートからの生成一部対応5 種類の雛形です。アプリの構成に合わせて書き換えが必要な場合があります
ビルド(docker build)と動作確認非対応ビルドも実行もしません。docker build で確かめてください
イメージの取得・脆弱性スキャン・ベースイメージの中身の確認非対応イメージには接続しません。脆弱性は調べません
オフラインでの利用対応一度開いたあとは通信なしで動作します

制限・注意事項

  • 入力は 200,000 文字まで、命令は 3,000 個までです。
  • 指摘は 300 件まで表示します。処理が 20 秒で終わらない場合は打ち切ります。
  • ENV・ARG の検出は「KEY=値」「KEY: 値」の形を主に対象にします。「KEY 値」の形は見逃すことがあります。
  • RUN の中身は、シェルの構文を完全には解釈しません(引用符の中の | などは簡易に扱います)。
  • ヒアドキュメントは RUN・COPY・ADD のみ読みます。複数の Dockerfile をまとめた入力は 1 つとして扱います。
  • 生成の既定のイメージ名と版は例です。使う前に最新の版を確かめてください。

プライバシーと安全性

貼り付けた Dockerfile と読み込んだファイルは、お使いのブラウザの中だけで処理されます。サーバーへの送信・保存はしません。ENV・ARG の秘密らしい値は画面に出さず、整形では既定で *** に置き換えます。RUN の中の値は指摘するだけで、整形では伏せません。

よくある質問

Dockerfile のベストプラクティスを確認するには?
Dockerfile を「解析・指摘」に貼り付けます。FROM のタグ、apt や apk の版の固定、キャッシュの削除、root での実行、COPY . などを行番号つきで挙げます。挙げられた点は、用途に合わせて判断してください。
Dockerfile の雛形を作るには?
「生成」でテンプレートを選び、ベースイメージ・ポート・作業フォルダ・起動コマンドを入力します。マルチステージや HEALTHCHECK も選べます。出力を保存し、docker build で確かめてください。
hadolint と同じ結果になりますか?
いいえ。hadolint の規則番号を参考の名前に使っていますが、規則はこのツールの自前の実装で、hadolint の全規則や完全な互換ではありません。厳密な確認には hadolint を別途使ってください。
ENV に書いたパスワードは、どうなりますか?
ENV と ARG の値は、イメージの設定や履歴に残ることがあります。ビルド時だけ必要な秘密は、RUN --mount=type=secret などで渡す方法を検討してください。このツールは該当する行を指摘し、画面では値を伏せます。
Dockerfile をビルドして確かめられますか?
いいえ。このツールはビルドも、ベースイメージの取得も、脆弱性の確認もしません。確かめるには docker build を使ってください。
入力した Dockerfile はサーバーに送られますか?
いいえ。解析・整形・生成はすべてブラウザの中で行い、LIBRA Works のサーバーや第三者に送信されることはありません。

Docker Compose Studio

docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。

アップロードなしベータ

秘密情報スキャナー(Secret Scanner)

コードや設定ファイルを貼る・ドロップするだけで、公開前に消すべき秘密情報の候補を行番号つきで一覧します。値は既定で伏せ字、*** に置き換えたコピーも作れます。あくまで補助ツールで、検出漏れがないことは保証しません。

アップロードなし

YAML / TOML 検証・整形・変換(YAML / TOML Studio)

YAML・TOML・JSON を貼り付けるだけで構文チェック・整形・相互変換。エラーは行と列で示し、「no が false になる」などの型の落とし穴と、変換で失われるものを事前に警告します。データは端末の外へ送信しません。

アップロードなしベータ

curl解析・コード生成

Chrome や Firefox の「cURL としてコピー」を貼ると、メソッド・URL・ヘッダー・Cookie・本文を表にし、12 種類のコードへ変換します。リクエストは送らず、すべてブラウザの中で処理します。Authorization や Cookie は共有前に伏せられます。

アップロードなしベータ

nginx Config Studio

リバースプロキシ・SPA・PHP-FPM・HTTP から HTTPS への転送などの設定をフォームから作り、手元の nginx.conf を貼ると構文エラーや見落としやすい点を一覧にします。ブラウザの中だけで動き、nginx は実行しません。

アップロードなしベータ

最終更新: