构建从VSTS到Azure容器服务的CI / CD管道我遇到了挂载traefik.toml和docker.sock文件的问题 .

部署使用SSH隧道创建文件夹/ Deploy /并复制docker-compose.yml和traefik.toml . 文件在那里,容器被旋转 . 但是没有由traefik处理,因为它没有“看到”容器 .

traefik教程显示我们可以在_1268946中安装类似的东西:

version: '2' 

services:
  proxy:
    build: 
      context: .
      dockerfile: /Traefik/dockerfile
    restart: always
    command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
    networks:
      - internal
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/null:/traefik.toml

这在我的Windows 10机器上运行完全正常,运行docker 17.09.0-ce但是当部署到Azure-Container-Service时,我收到以下错误:

ERROR: Named volume "\var\run\docker.sock:/var/run/docker.sock:rw" is used in service "proxy" but no declaration was found in the volumes section.

https://github.com/docker/compose/issues/3073选择额外的点( . )来表示它是到主机卷的映射 . 尝试过它,没有错误,但它实际上没有挂载 .

"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/dutchitworks/deploy/.\\var\\run\\docker.sock",
                "Destination": "/var/run/docker.sock",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/dutchitworks/deploy/.\\dev\\null",
                "Destination": "/traefik.toml",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

它添加了/ home / dutchitworks / deploy / . 来自某个地方......

有关如何正确映射traefik.toml的任何想法都会受到欢迎......