필자는 참고로 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 정말 편한 툴인것 같다. 앞으로 많이 사용해줘야겠다.
'linux > docker' 카테고리의 다른 글
docker OCI runtime create failed, exec: "source": executable file not found in $PATH: unknown. 오류 (0) | 2024.03.18 |
---|---|
docker 로 jeus7 구동하기 (0) | 2024.03.13 |
docker error Cannot find module '/index.js' (0) | 2024.03.05 |
docker 명령어 정리 (0) | 2024.02.29 |
서버 두 번 올라가는 오류 (0) | 2023.09.12 |