
Docker 이미지 빌드까지 하고 => 이미지 생성 완료!
생성된 이미지를 사용해 컨테이너를 실행하려고 했다.(?)
1. Docker 이미지를 컨테이너로 실행하는 기본 명령어
docker container run [옵션] 이미지_이름 [명령]
2. 빌드한 이미지 이름이 "myapp"이고 웹 애플리케이션을 실행하기 위해 포트 3000을 호스트의 3000 포트와 연결하고 싶다
docker container run -d -p 3000:3000 myapp
근데 왜 와이? 또 에러가 ... 나죠?
환경 변수 설정 잘 해놨는데... ? 로그 파일까지 잘 찍히고 있는데요(?)
.env 파일
NODE_ENV=development
/src/config/.development.env
LOG_FILE_PATH=/Users/jisoochoi/project/logs/
이렇게 잘 설정되어 있는데요 왜 못 찾으세요.. docker님🥲
구글링을 열심히 해보았읍니다...
Docker 컨테이너 내에서 실행되는 애플리케이션은 호스트 환경과 별도의 독립된 환경을 갖는다. 또잉! 이게 무슨 말이람
환경 변수도 해당 컨테이너 내에 정의해야한다고 한다. 따라서, .env 파일이나 /src/config/.development.env 파일에 설정된 환경 변수는 Docker 컨테이너 내에서 직접 사용되지 않는다...........
그럼 어떻게 해야되나요?
docker container run 명령어에 환경 변수를 함께 넣어줘야 한다!
$ docker container run -d -p 3000:3000 --env-file ./src/config/.development.env nest-shoppingmall

docker compose로 하게 된다면?
1. docker-compose.yml 파일을 작성해주고
version: '3'
services:
nest-shoppingmall:
build:
context: .
dockerfile: Dockerfile
ports:
- '3000:3000'
env_file:
- ./src/config/.development.env
2. docker compose 명령어를 입력해주면 된다!
docker-compose up -d