nodejs web dockerizing
- 기존에 만들었었던 Nodejs Express WEB 프로젝트를 도커라이징 해보았다
- 얄팍한 코딩사전님의 가장 쉽게 배우는 도커를 보고 시도했다
- 도커가 이런거구나 하고 느낀 순간이였다.. 마치 신세계…
- 이번 도커라이징을 통해서 내 프로젝트를 도커가 설치되어있는 다른컴퓨터에서 매우 쉽게 돌려볼 수 있다는걸 알게되었다
기존 상태 설명
1 | . |
- 그냥 node express 서버와 db덤프 파일인 sqldump.sql 가 구분없이 한 디렉터리에 있었다
벡엔드와 데이터베이스로 분리하기
backend
,database
폴더를 만든다backend
폴더로 sqldump.sql와 깃허브, 프리티어 세팅 등을 제외한 99.9999%의 소스파일들을 이동한다database
폴더로 sqldump.sql을 이동
1 | database |
- 이런식으로 node express 서버와 db를 분리할 수 있었다
Dockerfile 작성하기
backend
1 | FROM node:12.18.3 |
- 내가 로컬에서 사용하는 환경을 토대로
- 내 앱에 맞는 노드버전을 가져와서
- /usr/src/app 라는 워크디렉터리에
- backend 아래있는 모든 파일들을 복사해오고
- RUN 명령어로 npm i로 종속성을 설치한다
- 그리고 CMD 명령으로 backend 서버를 실행시킨다
database
1 | FROM mariadb:10.5 |
- 내가 로컬에서 사용했던 마리아디비 버전 그대로 가져왔다
- 데이터베이스 관련 환경변수들을 정의해주고
- scripts 디렉터리에 있는 dump파일을 /docker-entrypoint-initdb.d/ 로 복사한다
- /docker-entrypoint-initdb.d/ 는 데이터베이스를 생성할 때,
- 하위 sql을 가지고 데이터베이스를 초기화해준다
후기
- 메모리 딸린다…
- 처음에는 좋아서 이것저것 다 도커라이징할려고 했는데,
- 하다보니까 메모리가 딸려서 마우스가 뚝뚝 끊겼다…