Sequel Pro con Mysql en Docker

Construyo 2 contenedores docker con Docker-Componer. Yo uso Docker en Mac, no boot2docker.

version: '2' services: drupal-web: image: drupal:latest ports: - "8080:80" depends_on: - mysql-server links: - mysql-server:mysql mysql-server: image: mysql environment: MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: root MYSQL_USER: drupal MYSQL_PASSWORD: drupal 

Todo funciona bien Instalo Drupal con éxito.

El problema es: me gustaría conectar SequelPro a mi database, pero no tengo connection con el contenedor de MySQL. Soy un principiante de docker. Gracias por su ayuda Micha

Olvidó exponer su puerto DB al host, así que simplemente agregue

 mysql-server: image: mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: drupal MYSQL_USER: drupal MYSQL_PASSWORD: drupal 

Y luego conéctese a la database en Sequal usando:

 user: root password: root host: localhost port: 3306 

Si ya tiene una database mysql local ejecutándose, cambie el puerto

 ports: - "4306:3306" 

y luego conéctese al puerto 4306 lugar de 3306 . Tenga en count que, desde el contenedor drupal, seguirá usando 3306

Asigne el puerto host 4306 (o cualquier otro puerto disponible) a la docker mysql 3306 como:

 mysql-server: image: mysql environment: MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: root MYSQL_USER: drupal MYSQL_PASSWORD: drupal ports: - "4306:3306" 

Debería poder conectarse a docker mysql con 127.0.0.1:4306

 mysql -u drupal -h 127.0.0.1 -P 4306 -p 

Debería verse un poco más como esto:

 version: '2' services: mysql-server: image: mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: drupal MYSQL_USER: drupal MYSQL_PASSWORD: drupal drupal-web: image: drupal:latest ports: - "8080:80" depends_on: - mysql-server links: - mysql-server:mysql-server environment: MYSQL_DATABASE: drupal MYSQL_USER: drupal MYSQL_PASSWORD: drupal 

(No estoy seguro si definir las variables de entorno a nivel global funciona, tal vez alguien que sabe puede corregir mi respuesta aquí y simplificarla)

Como puede ver, tiene 2 services, mysql-server y drupal-web. Drupal-web vincula su service de database. Ambos services tienen sus propias variables de entorno.

En mi caso, tengo un problema con mysql: 8, cambio a 5 y todo está bien