我有一个npm模块项目,它还提供了一个docker镜像。我希望在package.json
版本更改时触发docker镜像的构建/测试/推送。
我在bash脚本之后会识别我的package.json
中的版本是否发生了变化。
我可以判断文件是否已更改,例如使用节点的$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)
脚本,因为我已经在构建服务器上有节点bin,例如,PACKAGE_VERSION=$(node -p -e "require('./package.json').version")
答案 0 :(得分:1)
您可以将版本与当前图片进行比较......
#!/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 .