인프런 커뮤니티 질문&답변

김민종님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

ec2 배포후 질문입니다.

작성

·

373

·

수정됨

0

안녕하세요!

현재 강의자료의 백엔드 서버와 데이터 베이스 도커를 통해 연결까지 하고, 다른 질문글들을 참고로 하여 Dockerfile의 작성까지 완료한 후, pm2 restart all 으로 다시 시작까지 하였지만 아래와 같은 에러가 발생하고 있습니다.

에러만 보면 현재 DB와 연결이 잘 되고 있지 않는것이 문제라고 판단이 되지만, 강사님이나 저와 비슷한 에러가 있던 분들이 계시다면 해결법을 알고 계실까 하여 질문을 남깁니다.

topSub는 물론, 회원가입과 로그인도 불가능한 상황입니다.

 

2023-03-26 15;39;18.PNG코드도 같이 첨부하겠습니다.

docker-compose.yml

version: "3"
services:
    db:
        image: postgres:latest
        container_name: reddit-postgres
        restart: always
        ports:
            - "5432:5432"
        environment:
            POSTGRES_USER: "${DB_USER_ID}"
            POSTGRES_PASSWORD: "${DB_USER_PASSWORD}"
        volumes:
            - ./data:/var/lib/postgresql/data

    server:
        build: 
            context: ./server
        container_name: clone-reddit-server
        restart: always
        ports:
            - "4000:4000"
        volumes:
            - /app/node_modules
            - ./server:/app
        
    client:
        build:
            context: ./client
        container_name: clone-reddit-client
        ports:
            - "3000:3000"
        volumes:
            - /app/node_modules
            - ./client:/app
        stdin_open: true

Dockerfike -client

FROM node:16-alpine

ENV PORT 3000

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm config set sharp_binary_host "https://npmmirror.com/mirrors/sharp"
RUN npm config set sharp_libvips_binary_host "https://npmmirror.com/mirrors/sharp-libvips"
RUN npm install

COPY ./ ./

ENV NODE_ENV production

RUN npm run build:production

CMD ["npm", "run", "start:production"]

Dockerfike -server

FROM node:14.14.0-alpine

WORKDIR /app

COPY ./package.json ./

RUN npm install

COPY . .

RUN npm install pm2 -g
RUN npm install ts-node -g 
RUN pm2 install typescript

# CMD ["npm", "run", "dev"]
CMD ["pm2", "start", "src/server.ts", "--watch"]

# CMD ["pm2", "start", "ecosystem.config.js", "--env", "production", "--watch"]

# CMD ["npm", "run", "dev"]

ecosystem.config.js

//client
module.exports = {
    apps: [{
        name: "clone-reddit-client",
        script: "npm run start:production",
    }]
}

//server
module.exports = {
    apps: [{
        name: "clone-reddit-server",
        script: "npm run start:production",
    }]
}

 

답변 1

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요!

혹시 pm2 monit이나 log를 이용해서

현재 데이터베이스가 잘 연결이 되어있는지 확인해 보셨나요?!

운영환경에서 나는 에러는 소스코드를 보기보단 로그를 보고 디버깅하는 게 괜찮은 거 같습니다.

우선 pm2를 이용해서 로그를 확인해 주시면 감사하겠습니다~

1. 서버가 잘 실행되었는지

2. 디비 연결이 잘 되었는지

3. 위에 둘 다 잘됐다면 클라이언트에서 보내는 요청을 잘 처리하는지 순으로 확인을 해주시면 됩니다.

감사합니다 ~

김민종님의 프로필 이미지
김민종
질문자

감사합니다! 우선 확인을 해보겠습니다