Closed10

docker-composeでbooleanがうまく扱えないエラー

daisuke-fukudadaisuke-fukuda
hoge.args contains true, which is an invalid type, it should be a string, number, or a null
daisuke-fukudadaisuke-fukuda

リンク

https://docs.docker.com/compose/compose-file/compose-file-v3/#args

YAML boolean values ("true", "false", "yes", "no", "on", "off") must be enclosed in quotes, so that the parser interprets them as strings.

なのでエラーになるのは仕様としてただしそう

daisuke-fukudadaisuke-fukuda

yamlにもバージョンがあって、1.1と1.2でboolの扱いがことなる。

docker-composeの1はpython、2はgoで、依存するライブラリが変わっているので挙動が変わっている箇所がある。

daisuke-fukudadaisuke-fukuda

闇が深そうなので、ここらへんで調査終わり。
boolean系のvalueはquoteでくくっておくマナーで良さそう。

daisuke-fukudadaisuke-fukuda

docker-composeの1も2も、依存しているyamlのライブラリがyamlの1.2に対応していない。
docker-composeの1は、docker-compose側で一部無理やり対応していて、docker-composeの2ではその対応が入っていない。

闇を抱えた状態なので、おとなしくdocにしたがってquoteでくくっておけば、将来的に↑の仕様bug?bug?が綺麗になっても困らないはず。

このスクラップは2022/03/18にクローズされました