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)