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

我在这里做错什么了吗?我能以某种方式使它工作吗?


我认为问题来自中间的冒号,根据有关github问题的此评论,使用dict而不是list应该可以解决(删除-NODE_CONFIG之前的领先
Tensibai

Answers:


9

泊坞撰写文件参考指出,该环境变量定义VARIABLE=value的数组元素。对于您的情况,需要将docker-compose.yml文件更改为此:

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

不。我首先尝试过,但没有用。
Tri Nguyen

@TriNguyen Strange,这对我
有用

好吧,构建会顺利进行,但是节点进程不会执行。
Tri Nguyen


2

您需要删除变量前面的破折号。使用如下语法:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.