다중 컨테이너 애플리케이션 구축
세개의 애플리케이션 구성하기
- docker를 사용하고 react로 도커라이징하여 브라우저로 볼경우에는 docekr에서 컨테이너명에 대한 IP변환을 못해주므로 localhost로 port로 연결을 해줘야한다.
- 보통 http는 80이고 https443이니 backend 인바운드포트와 아웃바운드포트 설정을 해주면 browser에서도 연결이 가능함.
DB 종속성 유지하기
- mongodb를 따로 볼륨설정을 하지 않을 경우에는 mongodb에있는 데이터들이 컨테이너가 내려갔다 올라갈때마다 데이터가 사라짐
- mongodb의 공식 홈페이지에 보면 /data/db에 실제 데이터베이스 데이터가 쌓이는 것을 알수있음
- mongodb의 데이터를 저장할 물리공간(볼륨)과 /data/db를 연결해야함
backend 종속성 유지 및 소스 실시간 변경
볼륨 바인딩하기
-v 내컴퓨터 물리경로:/app -v logs:/app/logs
위 와같이하게되면 내물리 경로에 있는 파일 및 폴더가 컨테이너 내부경로로 실시간으로 copy overwrite됨
하지만 logs:/app/logs라고 더 구체적인 경로를 Named Volume으로 컨테이너에 명시했기때문에 /app/logs에는 동일 폴더에 의해 덮여쓰여지지 않음
또한 npm install되는 경로를 익명의 볼륨으로 명시되게 하므로써 바인딩 볼륨보다 우선권을 가지게 하므로써 overwrite할수 없게 만듬
dependency넣기
- nodemon을 사용하면 npm app.js되신 변경될때마다 실시간으로 백엔드 컨테이너가 업데이트됨
dockerfile ENV추가
- ENV MONGODB_USERNAME=root, ENV MONGODB_PASSWORD=secret 추가후에는
- docker build하고 실제 js code에 ${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD} 넣어주게되면 됨
.dockerignore파일 생성 및 설정하기
- 해당 경로에 파일 및 폴더를 명시하게되면 copy가 안되게됨
- copy되면 안되는 파일들 넣어주기
Frontend 종족성 유지 및 실시간 변경
- backend 방식과 동일
'개인공부 > 도커공부' 카테고리의 다른 글
Docker-Compose (0) | 2025.03.10 |
---|---|
도커 네트워크 공부 (0) | 2025.03.10 |