上記の設定が出来ていることが前提となります。
■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になります
■関連記事