8

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 up コマンドを実行し、docker-compose.yml ファイルと同じディレクトリから実行すると、次のエラーが発生します。

エラー: ファイル './docker-compose.yml' では、サービス 'punjab' は文字列ではなくマッピングである必要があります。

yamllint を使用して yml ファイルを解析したところ、ファイルは正しくフォーマットされています。

4

1 に答える 1

17

理論的にはファイル形式は正しいように見えますが、いくつか間違っていることがあります。

彼らです:

  1. 正しい構文であるため、depends_on代わりに使用してください。depends-on

  2. ベスト プラクティスとして、次のようにイメージを通知する前に空白を使用しますimage: punjab

  3. パンジャーブ礼拝portslinksはコロンを忘れる:

  4. イメージ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
于 2016-06-04T16:46:45.430 に答える