반응형
docker nodejs 배포
1.필요한 파일
- Dockerfile
- package.json
- server.js
2. 순서정리
- Dockerfile 만들기 : Docker 이미지를 빌드하는 방법에 대한 지침이 포함된 텍스트 파일이다.
- Docker 이미지 빌드: 애플리케이션을 실행하는 데 필요한 모든 종속성 및 구성이 포함된 이미지를 생성한다.
- Docker 컨테이너 실행 : docker run명령을 사용하여 Docker 컨테이너를 실행할 수 있다.
3.Dockerfile
- FROM : node18.13.0 버전을 사용
- WORKDIR : 컨테이너의 작업 공간을 /use/src/app 을 기준으로 한다.
- COPY : package.json 파일을 컨테이너의 ./ 경로로 복사 (package.json는 한번만 실행시키기 위해 상위에 배치)
- RUN : 컨테이너에서 npm install 명령어를 실행
- COPY : 전체파일을 컨테이너의 ./ 경로로 복사
- CMD : 구동명령
FROM node:18.13.0
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY ./ ./
CMD ["node", "server.js"]
4.package.json
script 부분 해당내용을 작성한다.
{
"name": "nodejs-server",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"express": "^4.18.2"
},
"author": "",
"license": "ISC"
}
5. server.js
간단한 hello world 를 실행하기 위한 소스파일
const express = require("express");
const PORT = 8080;
const app = express();
app.get("/", (req, res) => {
res.send("Hello World..");
});
app.listen(PORT);
6. 실행명령어
- nodejs-server 도커 이미지를 생성
- 8080포트로 컨테이너 실행
- -d 옵션은 실행후 백그라운드 복귀를 위해 사용한다.
- -p 는 노출할 포트와 실행할 이미지를 지정한다.
#nodejs-server를 빌드함
docker build -t nodejs-server:latest .
#8080포트로 nodejs-server 실행
docker run -d -p 8080:8080 nodejs-server:latest
7. 실행디렉토리 SH명령어로 확인
#컨테이너아이디 조회
docker ps -a
#SH모드로 진입
docker exec -it <컨테이너아이디> sh
만약 Dockerfile에서 WORKDIR 설정을 하지않으면 / 경로에 실행파일들이 생성된다.
동일한 파일명이 있으면 덮어쓰기 때문에 WORKDIR 경로를 설정해서 소스를 관리한다.
반응형
'Cloud > docker' 카테고리의 다른 글
[Docker] 리엑트를 활용한 docker-compose 사용법 예제 (0) | 2023.05.18 |
---|---|
[Docker] Dockerfile 이미지 생성/빌드/컨테이너 실행예제 (0) | 2023.04.26 |
[Docker] Ubuntu에 Docker 설치및 실행 (0) | 2023.04.25 |