上記の設定が出来ていることが前提となります。
■Basic認証用のID、パスワードを生成
# ID: test
# PW: test
htpasswd -nb test test
■ID、パスワードを直接記載する場合のdocker-compose.yml
version: '3.7'
services:
  test-app-test:
    .
    .
    .
+    labels:
+      - traefik.http.routers.test-app-test.middlewares=auth
+      # パスワードは test です
+      - traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$eGwwMz30$$..Nko1IUf72kLRzLgS1cA.
- 
traefik.http.routers.test-app-test.middlewaresに設定したauthはtraefik.http.middlewares.【ここにauthが入ります】.basicauth.usersに記載をします。
- 
basicauth.usersの値は複数の設定が可能で「,(カンマ)」区切りで設定を行います。
- パスワードは「htpasswd」コマンドで作成します
- ymlファイルで$を使用する場合、$$に変更する必要があります
■認証ファイルにID、パスワードを指する場合のdocker-compose.yml
version: '3.7'
services:
  test-app-test:
    .
    .
    .
    volumes:
    .
    .
    .
+      - /tmp/.htpassword:/tmp/.htpassword
+    labels:
+      - traefik.http.routers.test-app-test.middlewares=auth
+      - traefik.http.middlewares.auth.basicauth.usersfile=/tmp/.htpassword
/tmp/.htpassword
test:$apr1$eGwwMz30$..Nko1IUf72kLRzLgS1cA.
- volumes に /tmp/.htpasswordを追加していますが、コンテナ内にファイルを直接作成しても問題はありません
- ファイルを指定する場合、basicauth.usersではなくbasicauth.usersfileになります
■関連記事
