클라우드 47일차 : mid project

soso·2024년 8월 13일

클라우드 부트캠프

목록 보기
49/77

Error: connect ECONNREFUSED 172.18.0.2:3306 app-1 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)
docker compose up --build 중 오류
연결이 거부된 (ECONNREFUSED) 이유는 MySQL 서버가 아직 완전히 준비되지 않았기 때문
MySQL 서버가 시작되고 준비되는 동안 애플리케이션이 너무 일찍 연결을 시도

해결

[root@master myapp]# cat docker-compose.yaml 
version: '3.8'

services:
  app:
    build: ./internet-banking-server
    ports:
      - "8080:8080"
    depends_on:
      db:
        condition: service_healthy
    networks:
      - myapp-network
    environment:
      MYSQL_HOST: db
      MYSQL_USER: user
      MYSQL_PASSWORD: abc123
      MYSQL_DB: test

  client:
    build: ./internet-banking-client
    ports:
      - "80:80"
    networks:
      - myapp-network

  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: abc123
      MYSQL_DATABASE: test
      MYSQL_USER: user
      MYSQL_PASSWORD: abc123
    networks:
      - myapp-network
    volumes:
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "--silent"]
      interval: 30s
      timeout: 10s
      retries: 5
networks:
  myapp-network:

healthcheck를 넣어줘 server가 db(mysql)이 실행된 후에 실행하도록 설정

route가 적용되지 않아 에러 페이지가 뜨는 문제

2024/08/13 18:27:17 [error] 31#31: *3 open() "/usr/share/nginx/html/api/account" failed (2: No such file or directory), client: 192.168.138.1, server: localhost, request: "GET /api/account HTTP/1.1"

해결

다른 app을 사용해 빌드해 Dockerhub에 배포
sssoeun/bank-frontend
sssoeun/bank-backend

0개의 댓글