Docker-Compose 設定ビルダー

Docker Composeの主要なサービス設定をブラウザ上のフォームで組み立て,即時プレビューとクリップボードコピーでdocker-compose.yml用YAMLとして確認・取得できます.完全な構文検証器ではありません.

読み込み中...

このツールが向いている用途

操作欄に戻る ↑

フォームからComposeのサービス定義を組み立てます.

まず試せること

WordPressのプリセットを選び,生成YAMLにwordpressとdbの2サービスがあることを確認します.

利用条件

設定ファイルの下書きを作る機能です.実行前にポート,環境変数,永続化の設定を確認してください.

ZeroToolsのブラウザ内処理とプライバシー

ZeroToolsは,入力内容を端末内で処理するツールを中心に提供しています.各ツールの対応範囲と制限を確認して利用してください.

データの取り扱い・プライバシー方針
第1章

Docker Compose設定作成ビルダーの範囲

このツールは,複数コンテナの構成を記述するdocker-compose.yml用のYAMLを,フォーム操作で組み立てる補助ページです.サービスを追加し,名前,コンテナimage,ports,volumes,environment,depends_onを編集すると,右側のプレビューが更新されます.

完成した文字列はクリップボードへコピーし,自分で作成したファイルへ貼り付けて利用します.ブラウザ上で動作し,Docker Engineを直接操作する機能はありません.

出力の先頭には例示的な基準としてversion: '3.8'とservicesが入り,各サービスにはrestart: alwaysが固定で付きます.restartポリシーを画面上で切り替える機能,YAMLファイルを直接ローカルに保存する機能,過去の入力状態を復元する機能はありません.Dockerデーモンと直接通信してコンテナを起動したり,イメージをダウンロードしたりするツールではありません.

このページは設定の下書きを速く作ることを目的としています.YAMLの完全な適合検査,imageの実在確認,ホスト側のディレクトリパスやポート番号の利用可否までは確認しません.最新のCompose仕様に準拠した詳細設定や本番向けの運用設定を行うための足場として利用し,出力された内容は必ず利用環境のDocker Composeで検証してください.

第2章

3種類の構成プリセット

Node+Postgresを選ぶと,node:18-alpineのappサービスとpostgres:15-alpineのdbサービスを読み込みます.appにはポート3000:3000,バインドマウント.:/app,匿名ボリューム/app/node_modules,DATABASE_URL環境変数,dbへのdepends_onが設定されます.

dbには5432:5432,postgres-data名前付きボリューム,ユーザー名・パスワード・データベース名の環境変数がプリセットされます.

WordPress+MySQLではwordpress:latestとmysql:8.0,Python+Redisではpython:3.10-slimとredis:7-alpineを使う構成へ置き換えます.ポート,永続化用ボリューム,接続用環境変数,依存関係もプリセット値として入ります.

これらは下書きや検証の開始点であり,最新のソフトウェアバージョン,安全な資格情報,本番向けの高可用性設定を自動選定するものではありません.

プリセットを押すと現在のサービス一覧は選択した内容に置き換わります.編集途中の構成を保持したまま別プリセットを追加・結合する機能はないため,必要な設定がある場合は先にYAMLをコピーしてください.パスワード欄に入っている値は開発用の例示値であるため,そのまま本番環境へ使用せず,環境に応じた適切なシークレット管理へ置き換えてください.

第3章

サービス編集と依存関係

サービス追加ではnginx:alpineと80:80を持つ新しい項目を作成します.サービス名は先頭が英数字で,以降にASCII英数字,アンダースコア,ドット,ハイフンのみを含む形式に制限されます.image,ports,volumes,environmentは文字列として受け取り,各欄で行を追加・削除できます.空行はYAML生成時に自動的に除外されます.

depends_onは他のサービス名を指定して依存関係を定義します.サービス名を変更した場合は,その名前を参照していた他サービスのdepends_onも新しい名前に自動追従し,サービスを削除した際も対応する参照が連動して除去されます.自身への依存や存在しない名前への参照はエラーとなり,循環依存など全論理検証を行うわけではありませんが,基本的な参照整合性が保たれます.

depends_onはコンテナ起動処理の順序関係を定義する設定ですが,このページにはhealthcheckやservice_healthy条件の設定欄が用意されていません.データベース等のプロセスが起動して接続受付可能になるまで待機することは保証されないため,起動順序だけでなく接続準備の完了を待つ必要がある運用環境では,コピー後にテキストエディタでhealthcheckやリトライ処理を追記してください.

第4章

YAML文字列の生成規則

サービス名はYAMLのキー,imageとrestartは値として出力します.内部ではjs-yamlを利用して文字列スカラーを適切に引用符で囲んで出力するため,コロンやハッシュ,引用符,改行を含む文字列でもYAMLの構造が壊れずにシリアライズされます.ports,volumes,environment,depends_onは配列形式で出力されますが,Docker特有の環境変数展開構文(${...})を無効化するわけではありません.

ボリューム指定では,短縮記法のbindマウント,名前付きボリューム,匿名ボリュームに対応し,末尾の:roなどのモード指定も解釈されます.絶対パス,相対パス(.や~),Windowsのドライブレター(C:\等)で始まるものはバインドマウントと判定され,末尾のトップレベルvolumesには宣言されません.

英数字・アンダースコア・ドット・ハイフンで構成された名前付きボリュームのみがトップレベルのvolumesに自動宣言され,曖昧な記法は検証エラーとなります.

生成順は画面のサービス配列の順序に従い,各サービスの内部はimage,restart,ports,volumes,environment,depends_onの順に出力されます.コメントやアンカー,拡張フィールド,profiles,deploy,build,command,networksなどの詳細な設定は生成されません.

複雑なオーケストレーションやビルド定義が必要な場合は,生成後にプロジェクトの要件に合わせて手動で追記してください.

第5章

コピー後の確認と実行手順

プレビューは読み取り専用です.コピーボタンはClipboard APIの完了を待ち,成功した場合だけ短時間の完了表示へ変わります.ブラウザの権限や安全なコンテキストの条件によって失敗する場合は,プレビューから手動で選択してコピーしてください.

コピー後はプロジェクトの適切な場所へdocker-compose.ymlまたはcompose.yamlとして保存し,ターミナルでdocker compose configコマンドを実行して構文と解釈を確認します.エラーがなければdocker compose up -d等でコンテナを起動できますが,imageがレジストリから取得できること,ポートの競合がないこと,指定されたホスト側パスが存在することまでは本ツール側で保証されません.

実環境での事前検証を行ってください.

環境変数に認証情報を直接書けば,コピー先のファイルにも平文で残ります.リポジトリへ誤ってコミットしないよう,.env,Docker secrets,運用環境の秘密管理など,プロジェクトに合う方法を検討します.本ページは秘密値を暗号化したり,漏えいを防ぐ権限管理を行ったりしません.

第6章

非対応範囲と安全な使い方

入力検査では,サービス名が英数字から始まり英数字・ドット・アンダースコア・ハイフンで構成されるASCII文字列であること,重複がないこと,依存関係が実在し自己参照でないこと,ボリューム記法が解釈可能であることを検証します.空行は自動的に除外されます.ただし,ポート番号の競合やCompose全仕様との厳密な互換性までは検査しないため,docker compose configによる確認が不可欠です.

カスタムnetwork,healthcheck,build context,Dockerfile,secrets,configs,resource limit,Swarm向けdeploy等も画面からは設定できません.高度な構成は下書きをコピーしてから公式のCompose仕様と利用中のDocker Composeの挙動を確認し,必要な節を追加します.

フォームからYAMLを生成する処理はブラウザ上のJavaScriptで完結して実行されますが,ページ読み込みやサイト資源の取得に伴う通信まで完全無通信と保証するものではありません.入力状態はサーバーへ保存・永続化されず一時メモリに保持されるため,タブを閉じたり再読み込みしたりする前に必要な出力をコピーしてください.

クリップボードへのコピー成功状態は入力や設定の変更時に解除されます.本ツールには最大100サービス,JSON.stringifyによる状態サイズ200,000 UTF-16コードユニットの上限が設けられています.サービス名を変更・削除した際はフォーム内の依存関係(depends_on)も連動して更新・削除されますが,アプリ側の接続先ホスト名や環境変数が新しい名前に合致しているかは別途確認が必要です.

また,短縮ボリューム定義やjs-yamlによる文字列クォートに対応しversion 3.8を例示出力しますが,完全なDocker構文検証や循環参照チェックを行うものではありません.生成結果を本番環境で使用する前に必ずdocker compose configを実行し,公開ポートやパスワードなどの秘密値を実環境に合わせて安全に調整してください.

よくある質問(FAQ)

A.
サービスの追加・削除と,サービス名,コンテナimage,ports,volumes,environment,depends_onを編集できます.version '3.8'とrestart: alwaysは出力に付与されます.networks,healthcheck,build等の全Compose仕様項目には対応していません.
A.
Node 18+Postgres 15,WordPress+MySQL,Python+Redisの3種類です.選ぶと現在のサービス一覧全体が置き換わるため,編集中の構成を保持したい場合は事前にYAML出力をコピーしてください.
A.
構文や設定値の妥当性,ホスト側パスやポートの空き状況は保証されません.ASCIIサービス名,非自己の依存先実在,短縮volume記法などは検証されますが,保存後にdocker compose config等で実際のDocker環境に合わせて確認してください.
A.
出力はクリップボードへコピーする方式であり,ファイル保存や入力復元はありません.入力された環境変数はそのままYAMLへ書き出されるため,本番運用の秘密情報は.envやDocker secrets等の仕組みへ置き換えて管理してください.