Я пытаюсь адаптировать секретный пример 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.
Какие-либо предложения?
Спасибо.
docker service create
из статьи) и получил те же ошибки, что и вы. После прочтения статьи я увидел в конце заметку, информирующую пользователей о том, что изображения необходимо обновить, чтобы учесть секреты. Я взглянул на дату, когда образ mysql добавил поддержку, и обнаружил, что это была . Мой локальный образ был старше этого, поэтому я запустилdocker pull mysql:latest
и получил недавнее изображение. Повторно запустил команду и она запустилась :) - person William Patton   schedule 17.03.2017services: mysql: image: mysql/mysql-server:5.7.17
так что он должен был удалить последний образ 5.7.17 пару недель назад. Когда я делаюdocker image ls
, он показывает mysql / mysql-server для РЕПОЗИТОРИИ, но ‹none› для ТЕГА. Я выясню, как загрузить конкретный образ mysql 5.7.17 и дам вам знать. - person kvjava1   schedule 17.03.2017docker inspect <IMAGE-ID>
), оно говорит: Создано: 2017-02-16T07: 06: 16.474620534Z. Я посмотрю, смогу ли я найти дайджест для изображения, содержащего исправление секретов _FILE, и попробую вытащить mysql по этому дайджесту ... - person kvjava1   schedule 17.03.2017