Bajo CentOS 7, entiendo que nos estamos moviendo de mysql-server
a MariaDB compatible con la implementación. Estoy usando una imagen de docker de centos:latest
, lo que me pone bajo los auspicios de Centos 7.
mysqld_safe
ejecuta el bloqueo en primer plano. Eso lo hace fácil: solo necesito 0) instalar el paquete 1) cambiar la contraseña de root y 2) ejecutar un servidor desde un Dockerfile
En el paradigma de docker, necesito poder instalar MariaDB como si estuviera en un script bash. He encontrado varias formas de hacer esto usando aptitude
en Ubuntu, pero aún no he encontrado una respuesta equivalente en yum
: ¿Cómo instalo, configuro y ejecuto mariadb en Centos 7 como si se estuviera instalando a través de un script Bash? mysql_secure_installation
parece requerir un TTY.
He intentado ejecutar el mysqladmin
comando de contraseña manualmente, pero se queja de que no puede conectarse a una instancia de MySQL en ejecución. Debido a que los contenedores se desechan entre pasos, creo que de alguna manera necesito ejecutar mysql y cambiar la contraseña en el mismo paso.
He intentado instalar initscripts
paquete me pone /bin/service
pero intenta redirigirme a usar systemctl start mariadb.service
, que no se puede usar porque los contenedores Docker obtienen un fakesystemd
y no systemd
. Alguna idea?
Aquí está mi variante actual de Dockerfile (en esta, probar un tail -f
para mantener vivo el proceso como 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
Relacionados:
- Instalación con script de MySQL en 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