在我们的jenkins2管道中,我们为一些测试使用了坞-组合,而我们的坞-组合文件从分支名(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
看起来,当我们有一个短的分支名称,一切都很好,当我们有一个长的分支名称,它会失败。
网络名能在码头上多久?我似乎在文件里找不到它。是否有比使用分支名称更好的解决方案来获得唯一的网络名称?
我试过了,但不知怎么的,这似乎有点过火了:
echo $(git rev-parse --abbrev-ref HEAD) | md5 | cut -f1 -d" "
会给出md5结果。
发布于 2018-11-26 10:06:23
所以在几天后没有得到答案后,我做了一些我自己的经验测试,发现不同的操作系统是不同的,我想为有同样问题的人写下我的答案。
以下是我的发现:
/
字符。因此,如果您想要保存并让您的docker-compose.yml在不同的环境中工作,那么您应该坚持使用最大长度为15字符的网络名称。
https://stackoverflow.com/questions/53449304
复制相似问题