【问题标题】:What can be the max length of a docker-compose network name?docker-compose 网络名称的最大长度是多少?
【发布时间】:2019-04-26 05:17:38
【问题描述】:

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

【问题讨论】:

    标签: docker jenkins docker-compose


    【解决方案1】:

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

    这是我发现的:

    • mac mac 上的 docker 可以有很长的网络名称,甚至可以在其中包含 / 字符
    • 一些 Linux 发行版可以有 16 个字符(例如 CentO),而其他 15 个(例如 Ubuntu)。
    • 无法在 Windows 上测试,因为我没有可用的

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

    也用过这个答案:What length can a network interface name have?

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2013-05-31
      • 1970-01-01
      • 2023-03-13
      • 2010-10-19
      相关资源
      最近更新 更多