Variabile SQL_INTERNAL_PORT
probabilmente ha 3307
valore. Devi cambiarlo in 3306
.
Inoltre, puoi rimuovere
expose:
- "${SQL_INTERNAL_PORT}"
linee. MySQL espone già la porta 3306.
Tutte le applicazioni nel cluster utilizzano porte interne (3306 nel caso di MySQL). Porte esterne (nella sezione porte) sono necessarie solo per la comunicazione di parole esterne.
Se vuoi avere più database, devi cambiare docker-comporre qualcosa come questo:
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