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