Ivo*_*net 1 jenkins docker docker-compose
在我们的 jenkins2 管道中,我们使用 docker-compose 进行一些测试,我们的 docker-compose 文件从分支名称 (git) 及其内部版本号的组合中获取其网络名称。
詹金斯文件片段:
def version = "$BRANCH_NAME-$BUILD_NUMBER"
def networkName = "network-$version"
sh "NETWORK_NAME=$networkName docker-compose up -d"
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml 片段:
version: '3.5'
networks:
default:
name: ${NETWORK_NAME}
driver: bridge
Run Code Online (Sandbox Code Playgroud)
看起来当我们有一个短的分支名称时一切正常,而当我们有一个长的分支名称时它会失败。
docker-compose 中的网络名称可以保留多长时间?我似乎无法在文档中找到它。是否有比获取分支名称更好的解决方案来获得唯一的网络名称?
我试过这个,但不知何故似乎完全矫枉过正:
echo $(git rev-parse --abbrev-ref HEAD) | md5 | cut -f1 -d" "
Run Code Online (Sandbox Code Playgroud)
将给出 md5 结果。
因此,在几天后没有得到答案后,我自己进行了一些实证测试,发现不同操作系统的情况有所不同。我想为有同样问题的其他人写下我的答案。
这是我发现的:
/字符所以如果你想保存并让你的 docker-compose.yml 在不同的环境中工作,你应该坚持一个最大长度为15 个字符的网络名称。
还使用了这个答案:网络接口名称的长度是多少?
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |