linux/docker

docker에 node.js + redis 프로젝트 올리기

Gh1324 2024. 3. 12. 00:28
728x90

 

 

필자는 참고로 node.js 써본적이 없음.

node.js가 크롬엔진에서 떼온거다 정도만 아는 수준

 


 

node.js 프로젝트 초기 세팅할 때

cmd에

npm init

입력하면 프로젝트 파일 자동으로 생성해준다

 


 

docker로 실행시키는 node.js 앱 구조

- index.js          ---> 제일 처음 실행하는 파일

- package.json   --> maven이나 gradle처럼 종속성 관리하는 파일

- Dockerfile  ---> 우리가 중점적으로 봐야하는 파일

- docker-compose.yml ---> 서로다른 도커 컴포넌트끼리 연결시켜주는 설정파일 (도커로 서버, 디비 다 올릴경우)

- database : redis   -> nosql

 


1. Dockerfile

Dockerfile 은 기타 index.js 를 실행시키는데 필요한 node와 기본 디렉터리 COPY 해준다.

FROM node:10

COPY package.json ./

WORKDIR /usr/src/app

COPY ./ ./

RUN npm install

CMD ["node", "index.js"]

 

대충 이런식으로 작성해 준다

 

 

2. package.json

이거는 npm init 하면 자동으로 생성되는 파일이다. 

거기에 dependencies랑  scripts에 start만 추가해준다.

{
  "name": "nodejs-docker-compse",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start":"node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies":{
    "express":"4.17.1",
    "redis":"3.0.2"
  },
  "author": "",
  "license": "ISC"
}

 

3. docker-compose.yml

version: '3'
services:
  redis-server:
    image: "redis"
  node-app:
    build: .
    ports:
      - "5000:8080"

 

service에는 redis-server와 node-app을 넣어준다.

 

 

4. docker-compose --build -d up 해주면 localhost:5000번을 실행할 수 있다.! 

 

참고로 redis를 먼저 실행해주고 실행하기~

 

docker-compose는 이제 docker build 할때 좀 귀찮으니까 나온 명령어같은데

이게 또 귀찮은 걸 많이 해소해줬다. 

 

docker build + docker run -> docker-compose --build up 

이런식으로 두 개의 명령어를 하나의 명령어 + 조건으로 처리할 수 있다.

 

docker-compose의 경우 해당디렉터리로 이동해서 실행해야 하며 docker-compose.yml 파일이 있어야 한다. 

 

docker 정말 편한 툴인것 같다. 앞으로 많이 사용해줘야겠다. 

728x90