используя образы docker для MySQL и redmine, как мне разрешить «Неизвестный хост сервера MySQL»?

#mysql #docker #redmine

#mysql #docker #redmine

Вопрос:

Я использую образы docker, предоставленные по адресу https://hub.docker.com/_/redmine

Я решил использовать MySQL в качестве серверной части базы данных. Итак, у меня есть 2 контейнера docker: MySQL и Redmine, загруженные с dockerhub.

Следуя инструкциям по ссылке docker / redmine выше, я пробежался по командам и обнаружил, что докер redmine не запускается. Просматривая журналы docker, я вижу:

рейк прерван! Mysql2 :: Ошибка:: Ошибка подключения: неизвестный хост сервера MySQL redmine (-5)

Я думал, что у 2 докеров возникли трудности с общением друг с другом, поэтому я настроил новую сеть docker для использования обоих контейнеров: docker network create —driver bridge redmine-net

Адаптируя инструкции по ссылке docker / redmine выше, я запускаю

имя docker run -d our-mysql —network redmine-net -e MYSQL_USER=redmine -e MYSQL_PASSWORD=todays-password -e MYSQL_DATABASE=redmine -e MYSQL_RANDOM_ROOT_PASSWORD= 1 -p 3306:3306 mysql: 5.7

имя docker run -d наше-redmine —network redmine-net -e REDMINE_DB_MYSQL=redmine -e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD = сегодняшний пароль redmine: последняя версия

Однако содержимое redmine по-прежнему мгновенно отключается с той же ошибкой.

РЕДАКТИРОВАНИЕ с использованием файла * .yml, как указано в инструкциях dockerhub redmine, работает довольно безупречно.

Итак, вопрос в том, что делает метод docker-compose, который docker run не обрабатывает?

Спасибо.

Комментарии:

1. Вы думали об использовании docker-compose.yaml для этой цели?

2. Спасибо, Нико, сейчас я пробую это с помощью docker-compose и файла * .yml. Кажется, что ошибка «Неизвестный хост сервера MySQL redmine» устранена, и теперь у меня ошибка «Mysql :: Error :: ConnectionError: доступ запрещен для пользователя ‘redmine@172.21.0.3 ‘ (использование пароля: ДА) «.

3. Я вижу, что я сделал сейчас. Я попытался сопоставить аргументы для docker run команды с файлом * .yml, но файл * yml работает точно так, как указано в инструкциях по ссылке Спасибо за ваше предложение @Nico, очевидно docker-compose , что это лучший способ, мне просто нужно больше понять, почему это лучше, чем docker run

Ответ №1:

REDMINE_DB_MYSQL Аргумент контейнера redmine ссылается на контейнер mysql, поэтому, если вы определяете службу базы данных, подобную нашей-mysql, затем установите REDMINE_DB_MYSQL=our-mysql