Definieren eines Booleschen Werts in einer docker-compose.yml-Datei:
environment:
SOME_VAR: true
und laufende docker up
Ergebnisse in:
contains true, which is an invalid type, it should be a string, number, or a null
Versuche, das Problem zu lösen
- Wenn true in True geändert wird, bleibt das Problem bestehen.
Die Verwendung
'true'
wird vom Code selbst nicht akzeptiert ( eine Play Framework-App wird mit dem Parameter./target/universal/stage/bin/APPNAME -Dplay.evolutions.db.default.autoApply=
, dh entweder-Dplay.evolutions.db.default.autoApply=true
oder, gestartet-Dplay.evolutions.db.default.autoApply=false
):VAR hat eher den Typ STRING als BOOLEAN
Die Verwendung von
yes
oderno
als Variable führt zu:enthält true, was ein ungültiger Typ ist. Es sollte eine Zeichenfolge, eine Zahl oder eine Null sein
Verwenden
yes
und Verwenden eines Skripts, dasyes
in echte Werke umgewandelt wird
Diskussion
Nach den Dokumenten 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
:
Umgebung
Umgebungsvariablen hinzufügen. Sie können entweder ein Array oder ein Wörterbuch verwenden. Beliebige boolesche Werte; true, false, yes no müssen in Anführungszeichen gesetzt werden, um sicherzustellen, dass sie vom YML-Parser nicht in True oder False konvertiert werden.
Umgebungsvariablen mit nur einem Schlüssel werden auf dem Computer, auf dem Compose ausgeführt wird, in ihre Werte aufgelöst. Dies kann für geheime oder hostspezifische Werte hilfreich sein.
environment: RACK_ENV: development SHOW: 'true' SESSION_SECRET: environment: - RACK_ENV=development - SHOW=true - SESSION_SECRET
Frage
Warum ist es nicht erlaubt?
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