docker-compose無効な型、文字列でなければなりません


19

docker-compose.ymlファイルで次の環境変数を設定しています:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'

実行しようとするとdocker-compose up、このエラーが発生します:

services.server.environment contains {"NODE_CONFIG": "{\"DATABASE_URL\":\"http://db:5984\"}"}, which is an invalid type, it should be a string

環境変数をJSON文字列に設定する必要があります(https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_configを参照)

ここで何か間違ったことをしていますか?これを何らかの方法で動作させることはできますか?


リストの代わりにdictを使用するgithub問題に関するこのコメントによると、問題は中央のコロン-に起因すると思う
NODE_CONFIGの

回答:


9

ドッカー作曲ファイル参照状態の環境変数は次のように定義されていることを、VARIABLE=value配列要素。あなたの場合、docker-compose.ymlファイルをこれに変更する必要があります:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG='{"DATABASE_URL":"http://db:5984"}'

いや。最初に試しましたが、うまくいきません。
トライグエン

@TriNguyen奇妙な、これは私のために働く
-Hexaholic

さて、ビルドは完了しますが、ノードプロセスはそれを認識しません。
トライグエン


2

変数の前のダッシュを削除する必要があります。次のような構文を使用します。

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.