DEV Community

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

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

nantipatsoften profile image Nantipat Updated on ・1 min read

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

Discussion (0)

Forem Open with the Forem app