0

docker イメージのビルドとタグ付けに使用している Makefile があります。ファイル ("pyproject.toml") から抽出された名前とバージョン情報を使用して、ビルドされたイメージにタグを付けたいと考えています。私の抽出メカニズムは非常にシンプルで、コマンド ラインで手動で実行すると機能します。

$ grep -e "^name\s*=\s*" pyproject.toml | cut -d = -f 2 | xargs
audio_program_generator
$ grep -e "^version\s*=\s*" pyproject.toml | cut -d = -f 2 | xargs
1.7.1.0

ただし、Makefile で変数を使用して同じことをしようとすると、何も展開されません。

私の pyproject.toml ファイルは次のようになります。

[tool.poetry]
name = "audio_program_generator"
version = "1.7.1.0"

Makefile の関連セクション:

NAME:=$(grep -e "^name\s*=\s*" pyproject.toml | cut -d = -f 2 | xargs)
VERSION:=$(grep -e "^version\s*=\s*" pyproject.toml | cut -d = -f 2 | xargs)

build-apg:
    docker build --target apg --tag $(NAME):$(VERSION) .

期待される出力

$ make build-apg
docker build --target apg --tag audio_program_generator:1.7.1.0 .

実際の出力:

$ make build-apg
docker build --target apg --tag : .
invalid argument ":" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
make: *** [build-apg] Error 125

私は何を間違っていますか?

4

0 に答える 0