Тестирование traefik на play-with-docker.com - PullRequest
0 голосов
/ 03 июля 2019

Я пытался протестировать и поиграть с traefik на play-with-docker.com, прежде чем запускать его на своем частном сервере.

Однако я не смог заставить работать простой пример с 2 контейнерамисм. мой docker-compose.yml файл ниже.Оба контейнера начинаются с up без каких-либо ошибок в их журналах.Я вижу панель мониторинга traefik на порте 80 с подпутью /traefik.Но я не вижу dozzle на порте 80 с подпути /dozzle.

Что не так с моей конфигурацией?Или traefik не работает должным образом на play-with-docker.com вообще?

Если я раскомментирую раздел ports, я могу увидеть дроссель на порте 8083 - но это не то, что я хочу,тогда я в обход traefik ...

Спасибо за все подсказки ...

---
version: '3.5'

networks:
  proxy:
    name: proxy
    driver: bridge
  web:
    name: web
    driver: bridge

services:
  traefik:
    image: traefik
    container_name: traefik
    restart: always
    command:
      - "--logLevel=INFO"
      - "--api"
      - "--defaultentrypoints=http"
      - "--docker"
      - "--docker.watch"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - proxy
      - web
    ports:
      - "80:80"
    labels:
    - "traefik.enable=true"
    - "traefik.backend=traefik"
    - "traefik.frontend.rule=PathPrefixStrip:/traefik"
    - "traefik.port=8080"
    - "traefik.docker.network=proxy"

  dozzle:
    image: amir20/dozzle
    container_name: dozzle
    restart: always
    depends_on:
      - traefik
    command:
      - "--level=DEBUG"
      - "--base=/dozzle"
      - "--addr=:8083"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    # ports:
    #   - 8083:8083
    networks:
      - proxy
    labels:
    - "traefik.enable=true"
    - "traefik.backend=dozzle"
    - "traefik.frontend.rule=PathPrefixStrip:/dozzle"
    - "traefik.port=8083"
    - "traefik.docker.network=proxy"

РЕДАКТИРОВАТЬ 13.07.2019 - дополнительная информация

Iпопробовал упрощенную версию составного файла на моем локальном компьютере с помощью Docker Toolbox.Все та же проблема.Если я на http://192.168.99.100/dozzle, я получаю пустую белую страницу, а на http://192.168.99.100 я получаю 404 ошибку.

Это упрощенная версия:

---
version: '3.5'

services:

  traefik:
    image: traefik
    container_name: traefik
    restart: always
    command:
      - "--docker"
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  dozzle:
    image: amir20/dozzle
    container_name: dozzle
    restart: always
    depends_on:
      - traefik
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - "traefik.enable=true"
      - "traefik.frontend.rule=PathPrefixStrip:/dozzle"
      - "traefik.port=8080"

Пустая страницая получаю http://192.168.99.100/dozzle содержит HTML-страницу, если я переключаюсь на просмотр исходного кода в браузере.Однако отображается только пустая белая страница.Я предполагаю, что относительные ссылки в HTML-коде не могут быть разрешены, и поэтому никакие CSS, JS и т. Д. Не могут быть загружены.

Ответы [ 3 ]

0 голосов
/ 05 июля 2019

Если я понимаю и опцию командной строки dozzle " - base = / doozle ", то бэкэнд должен быть достигнут через путь

: 8083 / dozzle

Но в вашем правиле веб-интерфейса вы удаляете / удаляете "/ doozle" из первоначального запроса:

"traefik.frontend.rule=PathPrefixStrip:/dozzle"

Таким образом, вы должны использовать только PathPrefix вместо.

0 голосов
/ 16 июля 2019

Я нашел решение, которое работает сейчас. Спасибо за все подсказки. Может быть, я изменил на несколько вариантов одновременно; - (

Этот составной файл работает:

---
version: '3.5'

services:

  traefik:
    image: traefik
    container_name: traefik
    restart: always
    command:
      - "--docker"
      - "--logLevel=INFO"
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  dozzle:
    image: amir20/dozzle
    container_name: dozzle
    restart: always
    depends_on:
      - traefik
    command:
      - "--base=/dozzle"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - "traefik.enable=true"
      - "traefik.frontend.rule=PathPrefix:/dozzle"
      - "traefik.port=8080"

Теперь я вижу Dozzle на http://192.168.99.100/dozzle, который пересылает, например, на http://192.168.99.100/dozzle/container/9b03de0e20a8.

0 голосов
/ 03 июля 2019

Попробуйте добавить это в портовую часть вашего сервиса traefik:

ports:
  - '80:80'
  - '443:443'
  - '8080:8080'

Тогда для вас Dozzle попробуйте это:

- traefik.port=80

Это может быть личная вещь, но я всегда используюсеть «сеть» как внешняя.

...