Variable SQL_INTERNAL_PORT
probablemente tiene 3307
valor. Tienes que cambiarlo a 3306
.
Además, puede eliminar
expose:
- "${SQL_INTERNAL_PORT}"
líneas. Mysql ya expone el puerto 3306.
Todas las aplicaciones en el clúster usan puertos internos (3306 en el caso de mysql). Puertos externos (en la sección puertos) que necesita solo para la comunicación de palabras externas.
Si desea tener varias bases de datos, debe cambiar docker-compose algo como esto:
version: '3'
services:
hackernews:
image: prismagraphql/prisma:1.8
restart: always
ports:
- "${CLIENT_PORT}:${INTERNAL_PORT}"
environment:
PRISMA_CONFIG: |
port: $INTERNAL_PORT
managementApiSecret: $PRISMA_MANAGEMENT_API_SECRET
databases:
default:
connector: mysql
host: mysql_first
port: 3306
user: root
password: $SQL_PASSWORD
migrations: true
second:
connector: mysql
host: mysql_second
port: 3306
user: root
password: $SQL_PASSWORD
migrations: true
mysql_first:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: $SQL_PASSWORD
ports:
- 3307:3306
volumes:
- ./custom/:/etc/mysql/conf.d/my.cnf
- mysql:/var/lib/mysql
mysql_second:
image: mysql:5.7
restart: always
environment:
ports:
- 3308:3306
MYSQL_ROOT_PASSWORD: $SQL_PASSWORD