작성
·
384
·
수정됨
0
안녕하세요!
현재 강의자료의 백엔드 서버와 데이터 베이스 도커를 통해 연결까지 하고, 다른 질문글들을 참고로 하여 Dockerfile의 작성까지 완료한 후, pm2 restart all 으로 다시 시작까지 하였지만 아래와 같은 에러가 발생하고 있습니다.
에러만 보면 현재 DB와 연결이 잘 되고 있지 않는것이 문제라고 판단이 되지만, 강사님이나 저와 비슷한 에러가 있던 분들이 계시다면 해결법을 알고 계실까 하여 질문을 남깁니다.
topSub는 물론, 회원가입과 로그인도 불가능한 상황입니다.
코드도 같이 첨부하겠습니다.
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
안녕하세요!
혹시 pm2 monit이나 log를 이용해서
현재 데이터베이스가 잘 연결이 되어있는지 확인해 보셨나요?!
운영환경에서 나는 에러는 소스코드를 보기보단 로그를 보고 디버깅하는 게 괜찮은 거 같습니다.
우선 pm2를 이용해서 로그를 확인해 주시면 감사하겠습니다~
1. 서버가 잘 실행되었는지
2. 디비 연결이 잘 되었는지
3. 위에 둘 다 잘됐다면 클라이언트에서 보내는 요청을 잘 처리하는지 순으로 확인을 해주시면 됩니다.
감사합니다 ~
감사합니다! 우선 확인을 해보겠습니다