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)
我在这里做错什么了吗?我能以某种方式使它工作吗?
#1 楼
Docker Compose文件参考指出,环境变量定义为VARIABLE=value
数组元素。对于您的情况,需要将docker-compose.yml文件更改为此:version: '3'
services:
server:
ports:
- 13045:3000
environment:
- NODE_CONFIG='{"DATABASE_URL":"http://db:5984"}'
评论
不。我首先尝试过,但是没有用。
– Tri Nguyen
17年6月23日在13:18
@TriNguyen奇怪,这对我有用
–十六进制
17年6月23日在13:24
好吧,构建会顺利进行,但是节点进程不会执行。
– Tri Nguyen
17年6月23日在13:27
#2 楼
您需要删除变量前面的破折号。使用如下语法: environment:
NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
#3 楼
args元素本身需要为字符串 args:
- 'MAVEN_USER=$MAVEN_USER'
- 'MAVEN_PASSWORD=$MAVEN_PASSWORD'
评论
是的,今天对我有用。
–亚当·门多萨(Adam Mendoza)
18-10-25在3:19
评论
我认为问题来自中间的冒号,根据对github问题的此评论,使用dict而不是list应该可以解决(删除前导-在NODE_CONFIG之前