Variável
SQL_INTERNAL_PORT
provavelmente tem 3307
valor. Você precisa alterá-lo para 3306
. Além disso, você pode remover
expose:
- "${SQL_INTERNAL_PORT}"
linhas. O MySQL já expõe a porta 3306.
Todos os aplicativos no cluster usam portas internas (3306 no caso do mysql). Portas externas (em portas de seção) você precisa apenas para comunicação externa de palavras.
Se você deseja ter vários bancos de dados, precisa alterar o docker-compose algo assim:
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