이번글은 Nest JS로 배포를 하면서 겪었던 경험을 적은 글입니다. 단순 기록을 위한 글입니다.
Node를 통해 배포를 처음보아서 적었습니다.
DockerFile
Nest를 사용하면서 DockerFile에서 초기서버 이미지이다. alpine으로 설정하게 되면 bcrypt가 동작안하게 되는경우가있다.
이런 현상은 왜 일어나느냐 저희의 개발환경컴퓨터와 alpine의 내부 구조가 다르기 때문이다. alpine은 가볍게 만들어져서 어느게 없는경우가있다.
그래서 bcrypt경우는 따로 rebuild를 해줘야한다. rebuild로 bcrpyt 패키지를 alpine컴퓨터에 맞춘것이다.
install
package.json을 통해서 node_modules를 생성하는 명령어이다.
build
Nest는 TS기반이다. 이를 JS로 바꿔서 dist디렉토리에 빌드된 소스 코드 및 필요한 파일이 생깁니다.
이를 통해 프로덕션 환경에 사용하는 코드가 위치입니다.
멀티스테이지
멀티스테이지를 활용하면 불필요한 파일들을 생략가능해서 이미지 크기를 줄일 수 있다.
Docker Compose
도커를 사용하면서 env를 환경별로 관리하고 싶었다.
그런데 이것을 받는 방법은 spring에서는 docker builld 할때 환경변수를 전달할 수 있었다.
그런데 헷갈리는것은 Docker Compose에서 한것도 전달이 되는가 했는데 가능했다.
Docker Componse는 도커이미지를 여러개 관리하기 편하기 위해서 만든것인데 개념으로 알지만
이런 생각을 못했다.