docker runをComposeに
docker run to Compose
docker runのコマンドラインをcomposeのサービス定義に直し、逆方向の変換もできます。
`docker run`のコマンドラインを、それに対応する`compose.yaml`のサービスに変換します。コマンドは本物のシェルのクォート規則で分解するので、`sh -c "…"`と書かれたエントリポイントも、空白とクォートをそのままに残します。
docker run コマンド
compose.yaml
注記
- -d は docker run の呼び出し自体にしか効きません。Compose に対応するものがないので落としました。
sh -c "…" のようなエントリーポイントも空白ごと生き残ります。Compose に対応のないフラグ(--rm, -d)は理由を添えて落とします — ライフサイクルは Compose 自身が決めるからです。知らないフラグは黙って飲み込まず、必ず名前を挙げます。出力のポートを引用符で囲むのは、そうしないと YAML 1.1 が 8080:80 を 60 進数として読んでしまうからです。使い方
コマンドを貼り付けます
行の継続、クォートされた値、イメージ名の後ろに続くコマンドも扱います。何も実行しません。文字が入って文字が出るだけです。
出力の下の注記を読みます
Composeに対応する書き方が無いフラグは、黙って捨てずに一覧にします。知らないフラグは名前を挙げます。ファイルをコミットする前に確かめる値打ちがあるのは、その一覧です。
composeファイルに貼り付けます
出力はサービス1つ分です。すでにあるものと並べて`services:`の下に置き、コマンドに`--name`が無かったなら、好きな名前を付けてください。
よくある質問
ポートにクォートが付くのはなぜですか
YAML 1.1が`8080:80`を60進数として読むからです。誰も望まなかったのに、どのYAMLパーサも受け継いでしまった書き方です。クォートを付けて初めて、ポートの対応づけのまま残ります。Composeでいちばん有名な落とし穴です。
`--rm`と`-d`はどこへ行きましたか
注記を添えて落とします。ライフサイクルはCompose側の担当だからです。切り離すか付けたままにするかは`docker compose up`が決め、コンテナの削除は`docker compose down`が行います。サービスの水準に置き換えられる相手がありません。
composeファイル全体を書いてくれますか
書くのはサービスです。ネットワーク、最上位のボリューム、そして最近のComposeがもう求めない`version:`のキーは、自分で足すことになります。もっとも、たいていは必要ありません。
ここから渡せます
chmod権限計算機
chmod Calculator
8進数・記号・チェックボックスの権限表記を相互に変換し、setuidとstickyビットも扱います。
.envの解析・変換
.env Parser & Converter
.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。
Dockerイメージのレイヤー解析
Docker Image Explorer
書き出したイメージのtarを開き、レイヤーごとのコマンド・大きさ・足したり消したりしたファイルを見せます。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
Dockerイメージのレイヤー解析
Docker Image Explorer
書き出したイメージのtarを開き、レイヤーごとのコマンド・大きさ・足したり消したりしたファイルを見せます。
.envの解析・変換
.env Parser & Converter
.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。
Kubernetes Secretのデコード
Kubernetes Secret Decoder
Secretマニフェストの中のBase64値をすべて復号し、書き換えたものを適用できる形に符号化し直します。
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。