Definindo um booleano em um arquivo docker-compose.yml:
environment:
SOME_VAR: true
e execução docker up
resulta em:
contains true, which is an invalid type, it should be a string, number, or a null
Tentativas de resolver o problema
- Se true for alterado para True, o problema persistirá.
O uso
'true'
não é aceito pelo próprio código ( um aplicativo de estrutura de reprodução é iniciado usando o parâmetro./target/universal/stage/bin/APPNAME -Dplay.evolutions.db.default.autoApply=
, ou seja,-Dplay.evolutions.db.default.autoApply=true
ou-Dplay.evolutions.db.default.autoApply=false
):VAR tem o tipo STRING em vez de BOOLEAN
O uso
yes
ouno
como variável resulta em:contém true, que é um tipo inválido, deve ser uma sequência, número ou um valor nulo
Usando
yes
e usando um script que se transformayes
em obras verdadeiras
Discussão
De acordo com os documentos Any boolean values; true, false, yes no, need to be enclosed in quotes to ensure they are not converted to True or False by the YML parser
:
Meio Ambiente
Adicione variáveis de ambiente. Você pode usar uma matriz ou um dicionário. Qualquer valor booleano; true, false, yes no, precisam estar entre aspas para garantir que não sejam convertidos em True ou False pelo analisador YML.
As variáveis de ambiente com apenas uma chave são resolvidas com seus valores na máquina em que o Compose está sendo executado, o que pode ser útil para valores secretos ou específicos do host.
environment: RACK_ENV: development SHOW: 'true' SESSION_SECRET: environment: - RACK_ENV=development - SHOW=true - SESSION_SECRET
Questão
Por que isso não é permitido?
DevOps Stack Exchange is a question and answer site for software engineers working on automated testing, continuous delivery, service integration and monitoring, and building SDLC infrastructure