首页 > 解决方案 > docker compose 项目名称去除下划线、点等

问题描述

我对此进行了一些搜索,并设法在 github 中找到了一些问题,但没有解决方案。

我的撰写文件是:

version: "3.4"

services:
  mariadb:
    ...
    
  redis:
    ...

当我跑

docker-compose -f docker-compose.yaml -p name_1.0

然后docker ps,容器名称是:

我还认为名称有长度限制,并且从某个长度开始修剪名称。

有解决方法吗?我希望能够在容器名称中包含一些标点符号,特别是点和下划线。

标签: dockerdocker-composeyaml

解决方案


docker-compose 的默认命名约定是<project>_<service>_<index>[_<slug>]. 没有配置参数,但既然docker-composepyhton项目,你可以尝试一些黑客攻击。

生成名称的函数build_container_nameservice.py中定义。

...
...
def build_container_name(project, service, number, slug=None):
    bits = [project.lstrip('-_'), service]
    if slug:
        bits.extend(['run', truncate_id(slug)])
    else:
        bits.append(str(number))
    return '_'.join(bits)
...
...

推荐阅读