1

私は traefik 2.1 を使用しており、すべてのコンテナーに基本認証をセットアップしたいと考えています。1.x では簡単に実行できました。

    [entryPoints.http.auth.basic]
    usersFile = "/etc/traefik/.htpasswd"

しかし、2.x でセットアップする方法は? すべての docker-compose.yml ファイルにコードを挿入することは避けたいと思います - それらの多くを手に入れました。

4

1 に答える 1

2

主なアイデアは次のとおりです。

の例を見つけてくださいdocker-compose.yml

version: '3.7'

services:
  traefik:
    image: "traefik:v2.2.1"
  command:
    - "--api.insecure=true"
    - "--providers.docker=true"
    - "--providers.docker.exposedbydefault=false"
    - "--providers.docker.network=default"
    - "--entrypoints.web.address=:80"
    - "--api"
  volumes:
    - "/var/run/docker.sock:/var/run/docker.sock:ro"
  ports:
    - 80:80
    # management console
    - 8080:8080
  labels:
    - "traefik.enable=true"
    - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
    - "traefik.http.routers.http-catchall.entrypoints=web"
    # auth middleware with user / password
    - "traefik.http.middlewares.my-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"

  whoami:
    image: "containous/whoami"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
      - "traefik.http.routers.whoami.entrypoints=web"
      # connect your auth middleware to a service which you want to protect
      - "traefik.http.routers.whoami.middlewares=my-auth"

したがって、次のことを確認できます。

コマンドを使用htpasswdしてユーザーのリストを生成し、Traefik ドキュメントに従って接続する必要があります。

それでおしまい。ハッピーコーディング;)

于 2020-06-18T18:24:53.083 に答える