inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Docker Volume을 이용한 데이터 베이스 데이터 유지하기

frontend 변경사항 반영

507

chgus0202

작성한 질문수 4

0

지금 nginx 를 이용해서 웹서버 랑 proxy랑 둘다 하는걸로 이해했는데

그럼 docker-compose.yml 측에서 frontend 빌드시
Dockerfile.dev 사용하니까

frontend 변경사항이 바로 보여야 하는지 아닌지 궁금합니다

frontend 변경 -> nginx 에서 정적파일을 가져와서 제공 지금 이런식인데
docker-compose yml 에서

nginx: restart: always build: dockerfile: Dockerfile context: ./nginx ports: - "3000:80"

여기에서는 볼륨이 딱히 보이지 않아서요 nginx에서는 변경사항이 있으면 어떻게 tracking 하는건가요?

프론트엔드가 변경되어도 그 변경된 사항을 다시 빌드해서 웹서버에서 제공이 되야하는건가요 안되는건가요?

현재는 프론트엔드 변경사항이 바로 반영이 되지 않아 제가 틀린건지 궁금해서 여쭙니다

aws docker github ci/cd travis-ci 데이터-엔지니어링

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.
docker-compose.yml을 통해 프론트엔드를 개발 중에는 Dockerfile.dev를 사용하고 있으신거 같아요. 이 경우 변경사항이 바로 보여지지 않을 수 있어요. Dockerfile.dev는 개발 환경을 위한 이미지로, 코드 변경 사항이 발생했을 때마다 이미지를 다시 빌드해야 합니다.

현재 nginx 컨테이너가 프론트엔드의 정적 파일을 제공하고 있는데, 변경사항이 갱신되지 않은 이유는 nginx 컨테이너의 볼륨 설정이 이루어지지 않아서 그렇습니다. nginx 컨테이너에 볼륨을 설정하면 프론트엔드 컨테이너의 변경된 파일을 실시간으로 반영할 수 있어요.

볼륨을 설정하는 방법은 다음과 같아요. nginx 컨테이너 내에서 볼륨을 정의하고, 이를 프론트엔드 컨테이너의 정적 파일 경로와 연결해야 합니다.

nginx 컨테이너의 docker-compose.yml 파일에 아래와 같이 volumes 설정을 추가해 주세요.

volumes:
  - ./nginx/html:/usr/share/nginx/html

이렇게 하면 프론트엔드 컨테이너의 변경된 파일이 nginx 컨테이너의 /usr/share/nginx/html 경로와 연결되어 바로 반영됩니다.

그 후에 docker-compose up 명령어를 통해 컨테이너를 다시 실행해 주세요. 이제 프론트엔드 코드를 변경하면 변경 사항이 실시간으로 반영되는 것을 확인할 수 있을 거에요.

아래의 docker-compose.yml에서 volumes 설정 부분을 참고해주세요.

nginx:
  restart: always
  build:
    dockerfile: Dockerfile
    context: ./nginx
  ports:
    - "3000:80"
  volumes:
    - ./nginx/html:/usr/share/nginx/html

이렇게 설정하고 동작하지 않거나 문제가 발생한다면, nginx 컨테이너에서 변경 사항을 추적하고 있는지 확인해보세요. 만약 변경 사항이 아무래도 반영되지 않는다면, 프론트엔드 코드 빌드 및 배포에 문제가 있는 것이므로 해당 부분을 다시 확인해 주세요.

더 자세한 내용이 필요하다면 인프런 사이트의 커뮤니티나 Docker 공식 문서를 참고해 보시는 것도 좋아요. 수고하세요!

Docker Containers간 통신 할 때 나타나는 에러 강의 질문

0

80

1

WINDOW + Vite를 사용하여 소스 코드 변경이 반영되지 않는 현상

0

79

1

도커 컨테이너 끼리 SSL 통신 시 문제가 생깁니다..

0

216

1

도표 강의 자료 사용이 불가합니다. (권한 문제)

0

136

1

Docker compose 관련 공유

0

142

1

트레비스가 유료화가 되어 테스트가 어려워 챕터8에서 고민중입니다.

0

79

1

강사님 혹시 vscode 어떤 테마 쓰시나요..?

0

286

1

The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.

0

105

1

travis ci가 이제 유료화가 된 것 같습니다;;;

0

211

2

docker-compose up 에러 공유 드립니다

0

291

1

Elastic Beanstalk에서 도메인 클릭시 react 이미지가 안나오고 다른 화면이 나오는데

0

170

1

도커 빌드 시간이 너무 오래걸려요..

0

1064

2

docker-compose down 이후에도 containers에 redis가 남아 있는 이유

0

168

1

도커 볼륨이 작동이 안되는것 같아서 질문드립니다!

0

213

2

docker-compose 가 Docker Desktop 에서 빠진건가요? command not found 라고 뜨네요

0

279

1

Error response from daemon: The system cannot find the file specified.

0

220

1

draw.io 오류

0

651

1

Docker Volume 오류(reference, lowercase)

0

564

1

[섹션3 - 내가 만든 이미지 기억하기 쉬운 이름 주기] 네이밍/태그 에러

0

227

1

axios오류 문의드립니다!

0

334

1

node.js version

0

485

1

안녕하세요 마지막 강의 질문 있습니다.

0

435

1

Deploy를 계속 실패합니다.

3

1383

4

TravisCI에서 계속 에러가 납니다....

0

360

1