inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

배포환경에서 MongoDB의 key값 보안 설정 질문

해결된 질문

553

GentleM

작성한 질문수 13

0

안녕하세요 강사님

강사님의 강의를 듣고 일주일간 고생한 끝에 MovieApp을 도커 기반으로 배포하는데 성공했습니다. 다만 배포환경에서 MongoDB와 연동하는 것을 계속 실패해서 gitignore로 숨긴 dev.js를 git에 push하여 배포하였습니다.

MongDB와의 연동 URL을 은닉하는 부분에 어려움이 있어 질문드립니다.

기본강의에서 강사님께서 언급하시기를, 배포환경에서는 heroku를 사용해서 MongoDB의 연동 URL을 은닉하라고 하셨습니다.

그런데 Docker 강의를 통해 배포하는 것을 배웠기 때문에 Travis CI 활용해서 해당 URL을 은닉하고자 노력 중입니다. 강의에서 관련 내용으로, AWS나 Docker Hub 정보를 Travis CI의 more options/Environment Variables에서 관리하는 부분을 최대한 참고해서 시도 중입니다. 문제는 해당 URL을  Travis CI 웹사이트에 입력하고 .traivs.yml에서 해당 정보를 받을 수는 있으나, 이것을 자바스크립트 파일로 옮겨오는 것입니다. 

구글링한 결과 yml to javascript 번역 npm 모듈이 있어서 이것을 활용할까 했습니다. 하지만 왠지 이것보다 더 좋은 방법을 강사님께서 아시지 않을까하여 질문드립니다. 

많이 바쁘신 와중에도 항상 질문에 답변해셔서 감사합니다! 

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

답변 4

1

달콤한 알파카

@배만진 

안녕하세요, 우선 답변 해주셔서 감사합니다. 제가 일단 아래와 같이 구성을 해봤습니다. 

NODE_ENV 빼도 안되더라고요. 

일단 이유를 정확히 잘 모르겠는데, 강사님 boilerplate를 활용해서 만들고 있어서 server 부분에 있는 config 폴터의 dev.js, prod.js 와 연결이 정확히 안되고 있는거 같습니다. 

추가적인 다른 설정은 하나도 안하셨나요? 혹시 그 VPC,SecurityGroup 설정은 강의 내용하고 같게 하셨나요? mysql을 사용하는게 아니라서 RDS 설정 및 RDS 와 elasticbeanstalk 연결 자체가 mongodb atlas 한테는 무의미 하지 않나요? 

원인을 찾아보려고 노력하는데 참 어려움이 있네요...

감사합니다.

0

GentleM

아래와 같이 environment란에 Mongo URI 넣어주시면 됩니다 :)

// 생략

  server:
    build:
      dockerfileDockerfile.dev
      context./server
    container_namemovie_app_server
    volumes:
      - /movie_app/node_modules
      - ./server:/movie_app
    environment:
      - MONGO_URI="본인의 URI"

0

달콤한 알파카

@배만진 

실례가 안된다면 혹시 어떤식으로 docker-compose.yml 구성하셨는지 알수 있을까요? 

mongodb atlas 하고 연결하려고 하는데 계속 실패하네요.

0

John Ahn

안녕하세요 배만진님 ! 
우선 너무 대단하시다고 말씀드리고 싶네요 .... 열정이 느껴집니다 !!! 

현재 몽고 DB atlas에서 제공해주는 클라우드 서비스 쓰시는 거죠 ? 

그렇다면 

노드부분을 위해서 dotenv 모듈 다운받아주시고요  

npm install dotenv --save 

그리고 root 디렉토리에   .env 파일 생성 후에  
파일 안에  MONGO_URI=   여기에  그 uri 부분 넣어주시구요 
server/index.js 부분에    

const dotenv = require('dotenv') 

const env = dotenv.config({ path: '.env' });
if (env.error) { throw env.error; }

이 부분 추가해 주시고 

mongoose.connect(  process.env.MONGO_URI 이렇게 넣어주시면 됩니다 ~ ! 

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

0

79

1

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

0

79

1

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

0

214

1

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

0

134

1

Docker compose 관련 공유

0

139

1

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

0

77

1

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

0

284

1

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

0

105

1

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

0

208

2

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

0

290

1

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

0

169

1

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

0

1053

2

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

0

164

1

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

0

211

2

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

0

277

1

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

0

218

1

draw.io 오류

0

643

1

Docker Volume 오류(reference, lowercase)

0

563

1

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

0

225

1

axios오류 문의드립니다!

0

333

1

node.js version

0

484

1

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

0

432

1

Deploy를 계속 실패합니다.

3

1378

4

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

0

354

1