Variabel SQL_INTERNAL_PORT
mungkin memiliki 3307
nilai. Anda perlu mengubahnya menjadi 3306
.
Anda juga dapat menghapus
expose:
- "${SQL_INTERNAL_PORT}"
garis. Mysql sudah mengekspos port 3306.
Semua aplikasi ke dalam cluster menggunakan port internal (3306 dalam kasus mysql). Port eksternal (di port bagian) yang Anda perlukan hanya untuk komunikasi kata eksternal.
Jika Anda ingin memiliki beberapa database, Anda perlu mengubah docker-compose seperti ini:
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