docker-compose网络名称的最大长度是多少?

时间:2018-11-23 15:26:01

标签: docker jenkins docker-compose

在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结果。

1 个答案:

答案 0 :(得分:0)

所以几天后没有答案,我自己做了一些经验测试,发现对于不同的操作系统它是不同的。我想把我的答案写下来给其他有同样问题的人。

这是我发现的:

  • Mac上的docker的网络名称可能很长,甚至可以包含/个字符
  • 某些Linux发行版可以包含16个字符(例如CentOs),而其他15个字符(例如Ubuntu)。
  • 我无法在Windows上进行测试

因此,如果您要保存并让docker-compose.yml在不同的环境下工作,则应坚持使用最长 15 个字符的网络名称。

也使用了以下答案:What length can a network interface name have?