在jenkins2管道中,我们使用docker-compose进行一些测试,并且docker-compose文件从分支名称(git)和内部版本号的组合中获取其网络名称。
Jenkins文件片段:
def version = "$BRANCH_NAME-$BUILD_NUMBER"
def networkName = "network-$version"
sh "NETWORK_NAME=$networkName docker-compose up -d"
docker-compose.yml片段:
version: '3.5'
networks:
default:
name: ${NETWORK_NAME}
driver: bridge
看起来,当我们有一个简短的分支名称时,一切都很好,而当我们有了一个长的分支名称时,它就会失败。
网络名称可以在docker-compose中保留多长时间?我似乎在文档中找不到它。 获得唯一的网络名称是否比使用分支名称更好的解决方案?
我已经尝试过了,但是似乎完全出于某种目的过度了:
echo $(git rev-parse --abbrev-ref HEAD) | md5 | cut -f1 -d" "
将给出md5结果。
答案 0 :(得分:0)
所以几天后没有答案,我自己做了一些经验测试,发现对于不同的操作系统它是不同的。我想把我的答案写下来给其他有同样问题的人。
这是我发现的:
/
个字符因此,如果您要保存并让docker-compose.yml在不同的环境下工作,则应坚持使用最长 15 个字符的网络名称。