首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-组合无效类型,它应该是字符串。

docker-组合无效类型,它应该是字符串。
EN

DevOps用户
提问于 2017-06-21 22:47:47
回答 3查看 82.6K关注 0票数 35

我在docker-compose.yml文件中配置了以下环境变量:

代码语言:javascript
复制
version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'

在尝试运行docker-compose up时,我会得到以下错误:

代码语言:javascript
复制
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_配置)

我在这里做错什么了吗?我能让这件事起作用吗?

EN

回答 3

DevOps用户

发布于 2017-06-23 12:21:42

环境变量定义为码头编写文件引用状态数组元素的VARIABLE=value。对于您的情况,需要将docker-compose.yml文件更改为:

代码语言:javascript
复制
version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG='{"DATABASE_URL":"http://db:5984"}'
票数 16
EN

DevOps用户

发布于 2019-08-17 14:46:20

您需要移除变量前面的破折号。使用这样的语法:

代码语言:javascript
复制
   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
票数 14
EN

DevOps用户

发布于 2022-09-23 21:40:41

代码语言:javascript
复制
version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'

在NODE_CONFIG出去之前先冲过去。由于一些奇怪的原因,这个破折号看起来不被环境所接受。

下面的示例来自官方postgres码头枢纽https://hub.docker.com/_/postgres

代码语言:javascript
复制
# Use postgres/example user/password credentials
version: '3.1'

services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080


**QQ edit:** 

Basically, dashes are lists and no dashes are mappings, so that is why environment variable must not have dashes
References:
https://stackoverflow.com/questions/64275361/docker-compose-yml-dash-syntax-in-yaml
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/1390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档