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

NoName님의 프로필 이미지
NoName

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

도커 컴포즈로 좀 더 간단하게 앱 실행해보기

리액트 핫로딩 옵션 줘도 동작을 안하네요 ㅠ

작성

·

1.1K

0

ㅠㅠ 잘못된 부분이 있으면 아무나 알려주시면 감사하겠습니다..

밑에 많은 분들께서 올려주신 글 참고해서 해봤는데

docker 실행 옵션에

-e CHOKIDAR_USEPOLLING=true

위 옵션으로 실행해도 안되고

Dockerfile.dev 파일에

ENV CHOKIDAR_USEPOLLING=true

로 설정을 줘도 안되고

docker-compose.yml 파일에

    environment:  # 리액트 핫로딩 작동 옵션을 true 로 줘야 Volume 기능을 정상적으로 사용할 수 있다.
      - CHOKIDAR_USEPOLLING=true

설정을 해줘도 리프래쉬시 화면이 변경되지 않네요...

 

컨테이너 내부에 접근해서 확인하였을 땐 App.js파일이 정상적으로 바뀌고 있습니다.

무슨문제일까요

 

 

 

 

답변 2

0

저도 똑같은 상황인데 해결이 안되네요..

NoName님의 프로필 이미지
NoName
질문자

저는 결국 해결하지 못하고 넘어갔습니다.

다른분들이 적어둔 해결방법들 다 해봤는데 안되더라구요 ㅠㅠ

근데 저부분이 중요하다고 느껴지는 부분은 아니라 너무 시간만 오래 잡아먹을 것 같아서

그냥 wsl2 설치해서 실행하니깐 잘 되길래 넘어갔습니다.

지금도 계속 wsl2로 idea 실행시켜서 수업 진행하고있어요

0

NoName님의 프로필 이미지
NoName
질문자

docker-compose.yml 파일 내용

# 도커 컴포즈 버전
version: "3"

services: # 이곳에 실행하려는 컨테이너들을 정의
  react:  # 컨테이너 이름
    build:  # 현 디렉토리에 있는 Dockerfile 사용
      context: .  # 도커 이미지를 구성하기 위한 파일과 폴더들이 있는 위치
      dockerfile: Dockerfile.dev  # 도커 파일이 어떤것인지 지정
    ports:
      - "3000:3000"  # 포트맵핑 로컬포트 : 컨테이너 포트
    volumes:  # 로컬 머신에 있는 파일들 맵핑
      - /usr/src/app/node_modules
      - ./:/usr/src/app
    environment:  # 리액트 핫로딩 작동 옵션을 true 로 줘야 Volume 기능을 정상적으로 사용할 수 있다.
      - CHOKIDAR_USEPOLLING=true
    stdin_open: true  # 리액트 앱을 끌 때 필요(버그 수정)

 

Dockerfile.dev 파일 내용

FROM node:alpine

WORKDIR /usr/src/app

# packages.json을 먼저 복사를 해서 캐싱된 모듈을 사용하게 함으로써
# 빌드 시 불필요한 설치과정을 패스하게 됨
COPY package.json ./

RUN npm install

# COPY [복사 할 파일 경로] [컨테이너내에서 파일이 복사될 경로]
# COPY ./ ./

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

# Mac 에선 상관 없지만
# Window에서 Volume 기능으로 실시간 화면이 변화하는걸 확인하고 싶으면
# 리액트 핫로딩 작동 옵션을 true 로 줘야 Volume 기능을 정상적으로 사용할 수 있다.
# ENV CHOKIDAR_USEPOLLING=TRUE

 

잘못된 부분 있는지 확인 부탁드리겠습니다.

OS는 window10  pro이고 vsc사용하여 코드 편집, power shell 사용하여 실행 하고 있습니다

 

 

 

NoName님의 프로필 이미지
NoName

작성한 질문수

질문하기