DEV Community

Cover image for Sequelize(NestJs) connect Mysql docker ไม่ได้เพราะ ใช้ network port ผิด
Nantipat
Nantipat

Posted on • Edited on

Sequelize(NestJs) connect Mysql docker ไม่ได้เพราะ ใช้ network port ผิด

NestJs

FROM node:14-slim WORKDIR /usr/src/app COPY package*.json ./ # If you add a package-lock.json speed your build by switching to 'npm ci'. RUN npm ci --only=production RUN npm i -g @nestjs/cli # Copy local code to the container image. COPY . . # Display directory structure RUN ls -l # Expose API port EXPOSE 3003 # Run the web service on container startup. CMD [ "npm", "start" ] 
Enter fullscreen mode Exit fullscreen mode

Docker Compose

version: '3' services: backend: container_name: nestjs build: . image: nestjs ports: - '3003:3003' database_sql: image: mysql:5.7 container_name: database_sql environment: - MYSQL_ROOT_PASSWORD=your_password - MYSQL_DATABASE=database_name ports: - '3307:3306' phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin ports: - '8000:80' links: - database_sql environment: PMA_HOST: database_sql 
Enter fullscreen mode Exit fullscreen mode

นี้คือจุดเชื่อมต่อ

Screenshot_21

config จะอยู่ที่ file .env นี้

DATABASE_USER=root DATABASE_PASSWORD=password DATABASE=your_database PORT=3306 // port **เป็น 3306 เพราะเป็น container คุยกันตอนแรกผมใส่ **3307 HOST=database_sql // ตรงนี้ใส่ PMA_HOST ตอนแรกผมไม่ได้ใส่แบบนี้ 
Enter fullscreen mode Exit fullscreen mode

เพิ่มเติม

https://medium.com/@somprasongd/docker-networking-59b6637de3df
https://medium.com/readmoreth/docker-connect-database-timeout-b23f781dcff7

Top comments (0)