1. ホーム
  2. escaping

[解決済み] docker compose ファイルの $ ドル記号はどのようにエスケープできますか?

2022-09-05 01:47:24

質問

YAMLスカラーを評価しようとすると、次のようなエラーが発生します。 docker-compose.yml ファイルを評価しようとすると、次のようなエラーが発生します。

ERROR: 無効な補間フォーマットで、 "environment" オプションの サービス "time_service"のオプションのための無効な補間フォーマット: "${Time.now}"

YAMLです。

---
version: '2'
services:
  time_service:
    build: "."
    environment:
      TIME: "${Time.now}"

書いてある通りの文字列出力を維持しつつ、docker-composeに誤った文字列補間と解釈されないようにするにはどうすればよいでしょうか。

どのように解決すればよいでしょうか?

を使用することができます。 $$ (ダブルドル記号) を使うことができます。 を使うことができます。

を打っていますね。 docker-compose 変数置換に当たっています。 ここで :

<ブロッククオート

両方 $VARIABLE${VARIABLE} の構文がサポートされています。拡張されたシェルスタイルの機能、例えば ${VARIABLE-default}${VARIABLE/foo/bar} はサポートされていません。

を使用することができます。 $$ (ダブルドル記号)を使うことができます。これはComposeが値を補間するのを防ぐためでもあります。 $$ を使用すると、Composeで処理されたくない環境変数を参照することができます。

docker-compose はPythonで書かれています。 github また、特殊文字の本来の意味を知るための二重化の仕組みは多くのプログラムで見ることができ、私自身も1984年の時点でプログラミング中にこれを使用する必要がありました。