Docker-compose.ymlファイルで奇妙なエラーが発生します。
スタックパンジャブ接続マネージャー、ejabberd、およびmysql用のdocker-composeファイルを用意しました。
以下はdocker-compose.ymlファイルです
version: '2'
services:
punjab:
image:punjab
ports
- 5280:5280
links
- ejabbberd:ejabberd
ejabberd:
image: ejabberd
depends-on:
- mysql
links:
- mysql:mysql
mysql:
image:mysql
コマンドラインから、docker-compose.ymlファイルがあるのと同じディレクトリからコマンドdocker-compose upを実行すると、次のエラーが発生します。
エラー:ファイル './docker-compose.yml'では、サービス 'punjab'は文字列ではなくマッピングでなければなりません。
Yamllintも使用してymlファイルを解析しましたが、ファイルは正しくフォーマットされています。
理論的にはファイル形式は正しいように見えるかもしれませんが、間違っていることがいくつかあります。
彼らです:
正しい構文であるため、depends_on
の代わりにdepends-on
を使用してください。
ベストプラクティスとして、image: punjab
のように画像に通知する前に空白スペースを使用してください。
パンジャブサービスのports
およびlinks
では、コロンを忘れます:
イメージejabberd
およびpunjab
はDocker Hubに存在しないため、ローカルリポジトリに存在する必要があります。
これは、docker-compose.yml
を使用する例です。
version: '2'
services:
punjab:
image: punjab
ports:
- "5280:5280"
links:
- ejabberd
ejabberd:
image: ejabberd
depends_on:
- mysql
links:
- mysql
mysql:
image: mysql