본문 바로가기

잡다/docker

[docker] 오늘의 삽질 : nginx 서버, ERR_EMPTY_RESPONSE 에러

문제점

Dockerfile의 내용을 다음과 같이 구성했다. 

FROM node:alpine as builder

WORKDIR '/home/node/app'

RUN chown -R node:node .
COPY package.json .
RUN npm install
COPY . .
#volume 같은 것은 개발 단계에나 의미 있는 코드지, 이미 개발된 코드에서는 관심 영역이 아님.
# USER node
RUN npm run build
# /home/node/app

# USER root

# RUN Phase
FROM nginx
COPY --from=builder /home/node/app/build /usr/share/nginx/html

이후 다음 명령을 shell 상에 순서대로 입력했다.

docker build . -t test
// 현재 폴더에 대해 빌드를 수행했다.
docker run -p 3000:3000 test

그러자, 다음 에러가 발생했다.

현재 에러는 서버는 정상적으로 동작하지만, 서버에서 어떤 데이터도 보내주지 않을 때 발생한다고 한다.


해결책

 나의 경우 매우 단순한 이유로 발생했다. nginx는 기본적으로 포트넘버 80 에서 동작하는데, 리액트의 동작을 생각하고 3000 포트 넘버를 이용한 것이 문제였다. 따라서 단순히 -p 3000:3000 을 -p 3000:80 으로 변경하였더니, 문제가 해결했다. 현재 에러가 발생했다면 우선 서버 자체는 정상적으로 구동되고 있는 것이므로, 설정 등에 문제가 없는지 확인하자.

정상적으로 화면이 출력되고 있다.