Насколько я понимаю, в CentOS 7 мы переходим от mysql-server
к совместимому с реализацией MariaDB. Я использую изображение docker для centos:latest
, что ставит меня под покровительство Centos 7.
mysqld_safe
запускает блокировку на переднем плане. Это упрощает задачу: мне просто нужно 0) установить пакет, 1) изменить пароль root и 2) запустить сервер из Dockerfile
В парадигме docker, потому что мне нужно иметь возможность устанавливать MariaDB, как если бы это было в сценарии bash. Я нашел различные способы сделать это, используя aptitude
под Ubuntu, но еще предстоит найти эквивалентный ответ под yum
: Как мне установить, настроить и запустить mariadb на Centos 7, как если бы он устанавливался с помощью Bash-скрипта? mysql_secure_installation
по-видимому, требуется TTY.
Я пробовал запускать mysqladmin
ввод пароля вручную, но он жалуется, что не может подключиться к запущенному экземпляру MySQL. Поскольку контейнеры выбрасываются между шагами, я считаю, что мне нужно каким-то образом запустить mysql и изменить пароль на том же шаге.
Я пробовал устанавливать initscripts
посылка доставляет меня /bin/service
но он пытается перенаправить меня на использование systemctl start mariadb.service
, который нельзя использовать , потому что контейнеры Docker получают fakesystemd
и не systemd
. Есть какие-нибудь идеи?
Вот мой текущий вариант Dockerfile (в этом, пытаясь tail -f
чтобы поддерживать этот процесс в качестве CMD
)
FROM centos:latestMAINTAINER Me (some@guy.com)RUN yum -y install wget epel-releaseRUN cd /usr/local/src && wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && rpm -Uvh remi-*.rpm && rm remi-*.rpmRUN sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/remi*.repoRUN cd /usr/local/src && wget http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm && rpm -Uvh rpmforge-*.rpm && rm rpmforge-*.rpmRUN rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txtRUN sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/rpmforge*.repoRUN yum -y updateRUN yum -y upgrade# mysqlRUN yum -y install mariadb-serverRUN yum -y install initscriptsWORKDIR /usr#RUN echo "bind-address=0.0.0.0" >> /etc/my.cnfRUN /usr/bin/mysql_install_db --datadir="/var/lib/mysql" --user=mysqlRUN /usr/bin/mysqld_safe --datadir="/var/lib/mysql" --socket="/var/lib/mysql/mysql.sock" --user=mysql >/dev/null 2>&1 &RUN /usr/bin/mysqladmin -u root password SOMEPASSWORDCMD tail -f /var/log/mariadb/mariadb.logEXPOSE 3306
Связанный:
- Скриптовая установка MySQL на Ubuntu
- https://askubuntu.com/questions/79257/how-do-i-install-mysql-without-a-password-prompt
- https://stackoverflow.com/questions/1202347/how-can-i-pass-a-password-from-a-bash-script-to-aptitude-for-installing-mysql
- https://stackoverflow.com/questions/7739645/install-mysql-on-ubuntu-without-password-prompt