Secciones

Contenedor mysql con docker compose (en MAC OS X)

Inicio » Artículos » Contenedor mysql con docker compose (en MAC OS X)
La categoría del artículo es
Escrito el 22 February 2016, 09:51


Si te estás peleando con docker compose y mysql para hacerlo funcionar correctamente en tu máquina MAC OS X, aquí está la solución.


Si te estás peleando con docker compose y mysql para hacerlo funcionar correctamente en tu máquina MAC OS X, aquí está la solución.

Este será el contenido que debe tener tu docker-compose.yml (entre otras cosas que necesites):

yml:
database:
  image: mysql:5.6.27
  ports:
    - 3306:3306
  volumes:
    - ~/mysqldata/:/var/lib/mysql:rw
    - ./mysql/:/mysql:rw
  environment:
    - MYSQL_ROOT_PASSWORD=mypassword
  command: "/mysql/run.sh"
  container_name: mysql_ddbb

 

También debes tener este script, que se encargará de asegurarse que el usuario y el grupo encargado de ejecutar mysql en el contenedor, sean los mismos que en el host:

bash:
#!/bin/bash
set -e

# Script to workaround docker-machine/boot2docker OSX host volume issues: https://github.com/docker-library/mysql/issues/99

echo '* Working around permission errors locally by making sure that "mysql" uses the same uid and gid as the host volume'
TARGET_UID=$(stat -c "%u" /var/lib/mysql)
echo '-- Setting mysql user to use uid '$TARGET_UID
usermod -o -u $TARGET_UID mysql || true
TARGET_GID=$(stat -c "%g" /var/lib/mysql)
echo '-- Setting mysql group to use gid '$TARGET_GID
groupmod -o -g $TARGET_GID mysql || true
echo
echo '* Starting MySQL'
chown -R mysql:root /var/run/mysqld/
/entrypoint.sh mysqld --user=mysql --console
 

Guárdalo en mysql/run.sh. Este script se ejecutará cuando arranquemos el contenedor de mysql, tal y como hemos especificado en la sentencia command.


Espero tus comentarios...

Ayuda Textile