#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