使用composeng时分析salt docker公式时出错

使用composeng时分析salt docker公式时出错,docker,salt-stack,Docker,Salt Stack,我在使用docker公式()时遇到了一个问题。它在解析要安装的映像时崩溃,表示“:”后面的内容不是字符串(整数或浮点) 以下支柱数据来自公式的支柱。示例,稍微适合我的需要: docker: compose: registry-data: dvc: True image: registry:2 container_name: &dvc 'registry-data' command: echo *dvc data volume conta

我在使用docker公式()时遇到了一个问题。它在解析要安装的映像时崩溃,表示“:”后面的内容不是字符串(整数或浮点)

以下支柱数据来自公式的支柱。示例,稍微适合我的需要:

docker: compose: registry-data: dvc: True image: registry:2 container_name: &dvc 'registry-data' command: echo *dvc data volume container volumes: - /opt/docker-registry/data:/var/lib/registry registry: image: registry:2 container_name: 'registry' restart: 'always' volumes_from: - 'registry-data' environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: '/var/lib/registry' ports: - 127.0.0.1:5000:5000 nginx: image: nginx:1.9 restart: 'always' ports: - 5043:443 links: - registry:registry volumes: - /etc/docker-registry/nginx/:/etc/nginx/conf.d - /etc/docker-registry/auth/:/etc/nginx/conf.d/auth - /etc/docker-registry/certs/:/etc/nginx/conf.d/certs 码头工人: 组成: 注册表数据: dvc:是的 图像:注册表:2 容器名称:&dvc“注册表数据” 命令:echo*dvc数据卷容器 卷数: -/opt/docker registry/data:/var/lib/registry 注册处: 图像:注册表:2 容器名称:“注册表” 重新启动:“始终” 卷从: -“注册表数据” 环境: 注册表\存储\文件系统\根目录:'/var/lib/REGISTRY' 端口: - 127.0.0.1:5000:5000 nginx: 图片:nginx:1.9 重新启动:“始终” 端口: - 5043:443 链接: -注册处:注册处 卷数: -/etc/docker registry/nginx/:/etc/nginx/conf.d -/etc/docker registry/auth/:/etc/nginx/conf.d/auth -/etc/docker registry/certs/:/etc/nginx/conf.d/certs 它最终调用dockerio,dockerio似乎在解析图像标记时遇到了一个错误,引发了一个异常。我通过修改/usr/lib/python2.7/dist-packages/salt/states/dockero.py的源代码成功地克服了这个问题

def_get_image_名称(图像、标签): 如果“:”不在图像中: #向后兼容性:名称可能已被标记 返回“:”.join((图像、标记)) 返回图像 致:

def_get_image_名称(图像、标签): 如果“:”不在图像中: #向后兼容性:名称可能已被标记 返回“:”.join((图像,str(标记))) 返回图像 <>我认为丑陋和不可维护。< /P> 版本:

  • docker py(1.6.0)
  • 盐普通2015.8.3+ds-1
  • 盐业硕士2015.8.3+ds-1
  • 盐仆2015.8.3+ds-1
docker公式直接从salt主配置文件中的gitfs获得

那么,你能指出我的支柱中是否有错误,或者是docker或这个docker公式的错误,以及它如何将值传递给docker,或者我是否应该调用其他东西吗

盐码头还是很新的。如果需要更多信息,请告诉我


谢谢。

您可以添加您使用的配方的链接吗?我想你用过。请尝试在图像名称周围添加引号,如示例中所示是的,这是公式。在图像名称周围使用单引号或双引号表示错误。 def _get_image_name(image, tag): if ':' not in image: # backward compatibility: name could be already tagged return ':'.join((image, tag)) return image def _get_image_name(image, tag): if ':' not in image: # backward compatibility: name could be already tagged return ':'.join((image, str(tag))) return image