Docker の Wordpress の秘密の例 (以下のリンク) を、Docker Compose のセットアップ (Drupal 用) で機能するように適応させようとしています。
https://docs.docker.com/engine/swarm/secrets/#/advanced-example-use-secrets-with-a-wordpress-service
ただし、'mysql' コンテナーをスピンアップすると、次のエラーが出力されます。
「エラー: データベースが初期化されておらず、パスワード オプションが指定されていません。MYSQL_ROOT_PASSWORD、MYSQL_ALLOW_EMPTY_PASSWORD、および MYSQL_RANDOM_ROOT_PASSWORD のいずれかを指定する必要があります」
「docker secret create」コマンドを使用してシークレットを作成しました。
docker secret create mysql_root_pw tmp-file-holding-root-pw.txt
docker secret create mysql_pw tmp-file-holding-pw.txt
上記を実行すると、swarm 環境にシークレット ' mysql_root_pw ' と ' mysql_pw ' が存在するようになります。以下を実行して確認:
docker secret ls
私のdocker-compose.ymlファイルの関連部分は次のとおりです。
version: '3.1'
services:
mysql:
image: mysql/mysql-server:5.7.17
environment:
- MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_pw"
- MYSQL_PASSWORD_FILE="/run/secrets/mysql_pw"
secrets:
- mysql_pw
- mysql_root_pw
secrets:
mysql_pw:
external: true
mysql_root_pw:
external: true
「docker stack deploy MYSTACK」を実行すると、「mysql」コンテナが起動しようとすると、上記のエラーが発生します。
「MYSQL_PASSWORD_FILE」と「MYSQL_ROOT_PASSWORD_FILE」は、MySQL が認識する標準の環境変数ではなく、「MYSQL_ROOT_PASSWORD」環境変数を想定しているようです。
Docker 17.03 を使用しています。
助言がありますか?
ありがとう。