在我用 重建其中一項服務后,我想使用 Makefile 執行快捷方式以洗掉 docker映像docker-compose up --build,因為每次重建都會創建懸空映像。
我的解決方案獲取已停止容器的 image_id 及其docker rmi。作為必須獲取影像ID的一部分,我喜歡這樣做:
export CONTAINER=name_1
docker container inspect --format='{{.Image}}' $CONTAINER
# > sha256:xxxxxxxxxxxxxxxxxxxxxx
但是如果我用makefile呼叫,我會得到空輸出:
./Makefile
CONTAINER=name_1
cmd:
echo $(docker container inspect --format='{{.Image}}' $CONTAINER)
cmd
# > echo
我不明白這里有什么問題。
uj5u.com熱心網友回復:
這個:
echo $(docker container inspect --format='{{.Image}}' $CONTAINER)
不運行docker。 $make 是特殊的,它引入了一個 make 變數,因此您正在擴展一個非常奇怪的命名(和空)變數。你必須$像$$你的食譜一樣逃避所有的東西,才能把它隱藏起來。
此外,長度大于 1 個字符的 makefile 變數參考必須包含在()or中{}(它們是等效的):
echo $$(docker container inspect --format='{{.Image}}' ${CONTAINER})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/526092.html
