Docker-compose 存在标签问题

met*_*amp 7 docker docker-compose traefik

我正在尝试使用其文档中显示的示例来设置Traefik反向代理。当我尝试启动“whoami”服务时,出现以下错误:

Creating test_whoami_1 ... 

ERROR: for test_whoami_1  dictionary update sequence element #0 has length 22; 2 is required

ERROR: for whoami  dictionary update sequence element #0 has length 22; 2 is required
Traceback (most recent call last):
  File "bin/docker-compose", line 6, in <module>
  File "compose/cli/main.py", line 68, in main
  File "compose/cli/main.py", line 121, in perform_command
  File "compose/cli/main.py", line 952, in up
  File "compose/project.py", line 455, in up
  File "compose/parallel.py", line 70, in parallel_execute
ValueError: dictionary update sequence element #0 has length 22; 2 is required
Failed to execute script docker-compose
Run Code Online (Sandbox Code Playgroud)

示例 docker-compose.yml 可以在 Traefik 文档中找到:test/docker-compose.yml

version: '3.3'

services:
  whoami:
    image: emilevauge/whoami
    networks:
      - web
    labels:
      - "traefik.backend=whoami"
      - "traefik.frontend.rule=Host:whoami.docker.localhost"

networks:
  web:
    external:
      name: traefik_webgateway
Run Code Online (Sandbox Code Playgroud)

traefik/docker-compose.yml

version: '3.3'

services:
  proxy:
    image: traefik:1.4.1
    restart: always
    ports:
      - 80:80
      - 8080:8080
    command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "./traefik.toml:/traefik.toml"
    container_name: traefik

networks:
  webgateway:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

使用以下 docker 和 docker-compose 版本:

Docker version 17.09.0-ce, build afdb6d4
docker-compose version 1.17.0, build ac53b73
Run Code Online (Sandbox Code Playgroud)

met*_*amp 4

解决方案:降级到docker-compose v1.16.1。