선생님 그러면 만약에 도커로 백엔드 실행하지말고 구냥..
만약 도커로 백엔드 실행하기싫고,
내 로컬에서 백엔드 실행한다고하면
mongoose
.connect("mongodb://my-database:27017/mydocker")
.then(() => {
console.log("DB 연결 성공");
})
.catch((err) => console.log("DB 연결 실패", err));connect부분을 로컬호스트:27017로만 변경하면 되는거는 알겠는데..
너무 번거로운거같은데 혹시 .env에 설정하는 방식같은게 없을까요?
예를들면 프로덕션, 개발모드에 따라서env를 바꿀수있잖아유
그런것처럼 도커컨테이너 환경 혹은 그냥 로컬에서 백엔드 실행했을때환경 이런걸 구분할수있는 방법은없나유?
답변 2
1
안녕하세요! 반가우면반갑다고해님!
추후 배포관련 수업에서 해당 내용을 자세하게 다루게 됩니다!^^
간략히만 미리 말씀드리면,
1. .env 파일을 아래와 같이 나누어줍니다.
// .env
MY_DB=localhost:27017
// .env.docker
MY_DB=my-database:27017
2.
2-1) 로컬에서 실행하는 경우, .env를 기반으로 실행하게 될 것이고,
2-2) 도커에서 실행하는 경우, docker-compose.yaml 파일을 통해, .env.docker를 환경변수로 주입하게 되면, 기존의 .env를 .env.docker가 덮어쓰게 된답니다!^^
0
안녕하세요, 인프런 AI 인턴입니다.
반가우면반갑다고해님, 프로젝트에서 환경별로 설정을 다르게 적용하고 싶으시다면 환경변수(.env)를 사용하는 것이 일반적입니다. 예를 들어, 로컬 환경에서는 MongoDB의 주소를 localhost:27017로, 도커 컨테이너를 사용할 경우에는 컨테이너의 주소를 사용하도록 설정할 수 있습니다.
.env 파일에 각 환경별로 변수를 설정하고, 코드 내에서 process.env를 통해 접근하여 참조할 수 있습니다. 예를 들면, .env 파일에는 다음과 같이 적을 수 있습니다.
DATABASE_URL=mongodb://localhost:27017/mydatabase
그리고 도커 환경에서 실행하는 경우 다른 .env 파일을 사용하거나 환경변수를 명령어를 통해 재정의하여 사용할 수 있습니다. 예를 들어, 도커 환경에서 실행할 때는 다음과 같이 설정할 수 있습니다.
DATABASE_URL=mongodb://my-database:27017/mydocker
Node.js에서는 process.env.DATABASE_URL로 이 값을 읽어서 사용할 수 있습니다. 코드 예시는 다음과 같습니다.
mongoose
.connect(process.env.DATABASE_URL)
.then(() => {
console.log("DB 연결 성공");
})
.catch((err) => console.log("DB 연결 실패", err));
이런 방식을 통해 개발(dev), 테스트(test), 프로덕션(prod) 등 다양한 환경에서의 실행을 위한 구성을 분리하고 관리할 수 있습니다. 환경변수를 통한 설정은 코드의 변경 없이 외부에서 실행 환경을 조정할 수 있는 유연한 방법을 제공합니다.
그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?
0
82
2
강의 전체 소스 코드를 받고싶습니다.
0
75
2
fontawesome 사용 문의
0
76
2
소스 코드 부탁드립니다~
0
84
2
깃 레포지터리 소스
0
80
2
커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요
0
72
2
10-01 Entity TypeOrmModule.forRoot 에 entities
0
84
3
강의 버전관련 문의입니다
0
101
2
Ubuntu 설치 관련
0
60
1
schema.gql 질문 드립니다.
0
50
1
서버 재실행시 Many to Many
0
100
3
input 관련 문의
0
89
2
Rest API 보다는 graphql이 주된 내용인데
0
130
2
강의 전체 소스코드 받을수있을까요?
0
154
1
도커볼륨 마운트 관련
0
126
2
findOne 타입스크립트오류
0
108
1
http => htrtps 호출 인증서 신뢰 오류
0
348
1
self-signed certificate in certificate chain 에러 발생
0
410
1
mongoose 설치 오류
0
141
1
특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)
0
280
2
08-06
0
177
3
구조랑 패턴 관련해서 질문
0
124
2
mydocker
0
127
2
coolsms statuscode 2000 인데 전송안돼는 경우 확인.
0
155
1





