2

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 を使用しています。

助言がありますか?

ありがとう。

4

1 に答える 1