簡體   English   中英

為什么MySQL Docker容器抱怨使用Docker 17.03機密時必須定義MYSQL_ROOT_PASSWORD env?

[英]Why does MySQL Docker container complain that MYSQL_ROOT_PASSWORD env must be defined when using Docker 17.03 secrets?

我正在嘗試改編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

運行上述命令后, 密碼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。

有什么建議么?

謝謝。

如果您的機密也是一個空字符串,則會出現此錯誤。 這就是我所發生的事情,已安裝密碼並正確配置了服務,但由於沒有密碼,因此仍然失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM