Docker Composeジェネレーター
このスタックで動かすもの
docker-compose.ymlを手で書くには、正確なインデント、すべてのポートマッピングの引用符、そして手元のComposeが理解するバージョン文字列を覚えておく必要があります。このジェネレーターでは、名前、イメージ、ホスト:コンテナのポートマッピング、ボリュームという単純なフィールドでサービスを定義できます。最新のCompose仕様(versionキーなし)に沿った有効なYAMLファイルを、妥当な既定値とともに出力します。
Composeファイルの作り方
-
1
サービスを追加
各サービスに名前とイメージを設定し、続けてポートマッピング、ボリューム、環境変数、再起動ポリシーを指定します。最初から2つのサンプルサービスが入っており、そのままでも起動します。
-
2
行を調整または削除
フィールドは直接編集できます。+ Serviceボタンでサービスを追加し、不要な行は削除してください。
-
3
生成されたYAMLを確認
生成されたYAMLを確認します。ポートマッピングは引用符で囲まれ、名前付きボリュームはすべてファイル末尾で宣言され、versionキーは省略されます。これが現在のCompose仕様の書き方です。
-
4
ファイルをコピー
生成されたdocker-compose.ymlをコピーし、プロジェクトのルートに貼り付けます。
現代のCompose仕様
Compose V2(Docker Desktopと現代のDocker Engineに同梱されるプラグイン)はCompose Specificationに従います。version:キーは非推奨で、ジェネレーターはそれを省きます。トップレベルのキーはservices、networks、volumes、configs、secretsです。
サービスの構造
本番寄りのサービスはこのように見えます。
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
ボリューム:バインドマウント vs 名前付き
- バインドマウント(
./app:/var/www)はコンテナをホスト上のパスに結びつけます。変更が即座に反映されるため、ローカル開発に最適です。 - 名前付きボリューム(
pgdata:/var/lib/postgresql/data)はDockerが管理し、ホストのパスとは独立に永続します。データベースや、rm -rfで誤って消したくないものに適しています。 - 匿名ボリューム、避けてください。再起動は生き延びますが、
docker compose down -vで警告なしに消えます。
ネットワーク
既定でComposeはプロジェクト名にちなんだネットワークを作り、すべてのサービスをそれに接続します。明示的なネットワークの宣言は、次のときに便利です。
- データベースを公開向けのサービスから隔離したい。
- 既存のインフラに合わせるため、カスタムのサブネットを持つブリッジが必要。
- コンテナを既存の外部ネットワークに接続したい(
external: true)。
避けたいよくある間違い
- versionキーの競合。 先頭の
version: "3.8"は、healthcheckのstart_intervalのような新しい機能が古いComposeで動くのを妨げます。ジェネレーターはversionキーを省きます。 - ポートの引用符。
8080:80は、一部の縁のケースでYAMLの60進数として解析されます。ジェネレーターは常にポートマッピングを引用符で囲みます。 - ハードコードされた秘密情報。 compose.ymlに直接書かれた秘密情報はgitにコミットされてしまいます。
env_fileかプラットフォームのシークレットストアに保管してください。 - conditionなしのdepends_on。 素の
depends_on: [db]はサービスの準備ではなくコンテナの起動を待ちます。condition: service_healthyを使い、依存先にhealthcheckを追加してください。
よくある質問
現在のCompose Specification(Docker Compose V2に整合)です。ファイルはversion:キーを省きます。これは現代のComposeファイルの書き方です。Docker Compose V2.22以降で動作します。
フォームからはできません。フォームではイメージ、ポート、ボリューム、環境変数、再起動ポリシーを設定でき、サービスがマウントする名前付きボリュームはComposeの要求どおりすべて宣言されます。ネットワークとヘルスチェックは、生成されたYAMLに手で書き足してください。
いいえ、このツールはcompose.ymlに焦点を当てています。Dockerfileには、ベースイメージの選択と5つのスタックのCOPY/RUN順序を扱うDockerfileジェネレーターを使ってください。
いいえ。サービス定義はこのページでYAMLを構築するためだけに使われ、保存、アップロード、共有はされません。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
このツールは他の言語でも利用できます
- ตัวสร้าง Docker Compose [TH]
- Trình tạo Docker Compose [VI]
- Docker Compose 생성기 [KO]
- Docker Compose-generator [SV]
- Generator Docker Compose [PL]
- Generator Docker Compose [ID]
- Docker Compose-generator [NL]
- Docker-Compose-Generator [DE]
- Generador de Docker Compose [ES]
- مولّد Docker Compose [AR]
- Générateur Docker Compose [FR]
- Gerador de Docker Compose [PT]
- Docker Compose Generator [EN]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]
- Docker Compose Oluşturucu [TR]
- Docker Compose 生成器 [ZH]