2017-06-09 3 views
0

私は機密データ(資格情報)をドッカーコンテナに.envファイルで渡しています。私は、ドッキングウィンドウ-コンを使用していますし、次のように私のドッキングウィンドウ-compose.ymlファイルになります。サービスでドッカーがエラーを作成するenv_file

services: 
    some-service: 
    env_file: 
     - .env 

しかし、私は、「アップドッキングウィンドウ・作曲」実行しようとするとき、私は以下のエラーが表示されます。

ERROR: In file './docker-compose.yml', service 'env_file' must be a mapping not an array. 

マイ.envファイルが

アルゴンをmy_pwd

ID = 1234567890

PWD =のようなデータを持っていますファイルにインデントエラーがありますか?このエラーを修正する方法に関する提案はありますか?

答えて

0

問題は字下げではありませんでした。今働いているようです。私は実際にバージョンとビルドパス(彼らは私の最初のymlファイルには欠けていた)について言及しなければならなかった。だから、次のように、最終的なドッキングウィンドウ-コンファイルは次のようになります。

version: '3' 
services: 
    some-service: 
    build: . 
    env_file: 
     - .env 

をしたり、あなたのように特定のイメージ名に関連付けることができますしたい場合:

version: '3' 
services: 
    some-service: 
    build: . 
    image: image_name:image_version 
    env_file: 
     - .env 

希望これはに実行し、誰かを助けます同じ問題

+1

を参照してくださいあなたのインデントレベルが間違っていたv1の構文にあなたが変更されたバージョンを含みません。 – BMitch

+0

@BMitch ok。したがって、何も言及していない場合、デフォルトのバージョンは1ですか? – Kingz

+0

はい。そして、バージョン1の構文はすべてのレベルがインデントされたサービスに過ぎません。 – BMitch

0

これはYAML構造に問題があるようです。 - .envの前にスペースがないか、サービス名がありません。これを試してください:あなたが唯一の環境ファイルを使用する場合は

services: 
    some-service: 
    env_file: 
     - .env 

は、あなたも書き込むことができます。

services: 
    some-service: 
    env_file: .env 

参照:https://docs.docker.com/compose/compose-file/#env_file

+0

some-serviceにはどのような値が有効でしょうか?私は "環境"を使用し、それは今私に以下のエラーを与えます。エラー:「./docker-compose.yml」の作成ファイルが無効です。 services.environment.env_fileには、無効なタイプの["a.env"]が含まれています。文字列、数字またはnullでなければなりません。 – Kingz

+0

これについてはわかりません。それは問題ではないかもしれませんが、私はサービス「環境」を呼ぶつもりはありませんでした。これは、ドッカー作成の中で予約されたキーワードでしたか?サービスを特定するのに意味のあるものを呼び出すことができます。それは単なる名前です。新しい設定を表示できますか?私はこの「a.env」の文字「a」がどこから来るのか分かりません。 – flogy

+0

ああ申し訳ありません。 a.envの 'a'は、あとで.envファイル名をa.envに変更したので、これが問題であるかどうかを調べるために表示されています。ファイル名のようにエラーとは何の関係もないようです。 – Kingz

0
ERROR: In file './docker-compose.yml', service 'env_file' must be a mapping not an array. 

エラーがドッキングウィンドウ-COMPOSEがenv_fileがあると考えていると述べていますサービスの設定ではなく、サービスの名前。これは、env_fileセクションがサービス内に正しくインデントされていないことを示します。 YML構文は空白に敏感なので、行のインデントをダブルチェックしてください。あなたのインデントでエラーが見つからない場合は、あなたの質問に完全なdocker-compose.ymlファイルを含めてください。

+0

を参照してください返信ありがとうございます。私は自分の答えを掲示しました - – Kingz

関連する問題