docker-compose tipo inválido, deve ser uma sequência


19

Eu tenho a seguinte variável de ambiente configurada em um arquivo docker-compose.yml:

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

Ao tentar executar docker-compose up, estou recebendo este erro:

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

Preciso que a variável de ambiente seja definida como uma string JSON (consulte https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Estou fazendo algo errado aqui? Posso fazer isso funcionar de alguma forma?


Acho que o problema vem do cólon em média, de acordo com este comentário em questão github usando um dicionário em vez de lista deve trabalhar (removendo a principal -antes NODE_CONFIG
Tensibai

Respostas:


9

A referência do arquivo Docker Compose afirma que as variáveis ​​de ambiente são definidas como VARIABLE=valueelementos da matriz. Para o seu caso, o arquivo docker-compose.yml precisaria ser alterado para este:

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

Não. Eu tentei isso primeiro, não funciona.
Tri Nguyen

@TriNguyen Estranho, isso funciona para mim
Hexaholic

Bem, a construção passaria, mas o processo do nó não a capta.
Tri Nguyen

2

Os próprios elementos args precisam ser uma sequência

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'

Sim, isso funcionou para mim hoje.
Adam Mendoza

2

Você precisa remover o traço na frente da variável. Use sintaxe assim:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.