Sob CentOS 7, eu entendo que estamos nos movendo de mysql-server
para MariaDB compatível com implementação. Estou usando uma imagem docker de centos:latest
, o que me coloca sob os auspícios do Centos 7.
mysqld_safe
executa o bloqueio em primeiro plano. Isso torna mais fácil: eu só preciso 0) instalar o pacote 1) Alterar a senha raiz e 2) executar um servidor de dentro de um Dockerfile
No paradigma docker, pois preciso ser capaz de instalar o MariaDB como se estivesse em um script bash. Eu encontrei várias maneiras de fazer isso usando aptitude
no Ubuntu, mas ainda não encontrou uma resposta equivalente em yum
: Como faço para instalar, configurar e executar o mariadb no Centos 7 como se estivesse sendo instalado via script Bash? mysql_secure_installation
parece exigir um TTY.
Eu tentei executar o mysqladmin
comando de senha manualmente, mas reclama que não pode se conectar a uma instância MySQL em execução. Como os contêineres são jogados fora entre as etapas, acredito que preciso executar o mysql de alguma forma e alterar a senha na mesma etapa.
Eu tentei instalar initscripts
pacote me recebe /bin/service
mas ele tenta me redirecionar para usar systemctl start mariadb.service
, que não é utilizável porque os contêineres Docker obtêm um fakesystemd
e não systemd
. Alguma ideia?
Aqui está minha variante Dockerfile atual (neste, tentando um tail -f
para manter o processo vivo como um 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
Relacionado:
- Instalação com script do MySQL no 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