私は traefik 2.1 を使用しており、すべてのコンテナーに基本認証をセットアップしたいと考えています。1.x では簡単に実行できました。
[entryPoints.http.auth.basic]
usersFile = "/etc/traefik/.htpasswd"
しかし、2.x でセットアップする方法は? すべての docker-compose.yml ファイルにコードを挿入することは避けたいと思います - それらの多くを手に入れました。
私は traefik 2.1 を使用しており、すべてのコンテナーに基本認証をセットアップしたいと考えています。1.x では簡単に実行できました。
[entryPoints.http.auth.basic]
usersFile = "/etc/traefik/.htpasswd"
しかし、2.x でセットアップする方法は? すべての docker-compose.yml ファイルにコードを挿入することは避けたいと思います - それらの多くを手に入れました。
主なアイデアは次のとおりです。
の例を見つけてください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 ドキュメントに従って接続する必要があります。
それでおしまい。ハッピーコーディング;)