2016-08-11 36 views
0

我有一個npm模塊項目,也提供了一個泊塢窗圖像。我想在package.json版本更改時觸發Docker鏡像的構建/測試/推送。腳本,如果package.json中的版本已更改

我在一個bash腳本之後會識別我的package.json版本是否發生了變化。

我可以告訴大家,如果該文件的東西改變使用節點都OK,因爲我已經在構建服務器節點倉已經,例如如$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)腳本,PACKAGE_VERSION=$(node -p -e "require('./package.json').version")

回答

0

您可以在版本進行比較,以你的當前圖像...

#!/usr/bin/env bash 

DOCKER_PACKAGE_VERSION=$(docker run my/image node -pe 'require("./package.json").version') 

NEW_PACKAGE_VERSION=$(node -pe 'require("./package.json").version') 

if [ "$NEW_PACKAGE_VERSION" == "$DOCKER_PACKAGE_VERSION" ]; then 
    printf "Same version [%s]\n" "$NEW_PACKAGE_VERSION" 
    exit 1 
fi 

printf "New version [%s] != [%s]\n" "$NEW_PACKAGE_VERSION" "$DOCKER_PACKAGE_VERSION" 
exit 0 

然後

$ ./should_i_build.sh && docker build -t my/image . 
+0

有趣的和可行的。那麼看看git,而不是試圖從回購協議中提取Docker鏡像呢? – Tom