● 실습 환경
(OS) Rocky Linux release 8.7 (Green Obsidian)
Step 1. 파일 수정
(파일) Dockerfile
-------------------------------------------------------------------------------------
FROM node:latest
RUN npm install -g nodemon # nodemon 패키지 설치
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3001
CMD ["nodemon", "server.js"] # 글로벌 설치
-------------------------------------------------------------------------------------
(파일) package.json
-------------------------------------------------------------------------------------
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "server.js",
"scripts": {
"start": "nodemon server.js", # nodemon 사용 서버 실행
"test": "echo \\\"Error: no test specified\\\" && exit 1"
},
"author": "yjyoo",
"license": "ISC",
"devDependencies": {
"nodemon": "2.0.4" # nodemon 패키지
}
}
-------------------------------------------------------------------------------------
(파일) server.js
-------------------------------------------------------------------------------------
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
-------------------------------------------------------------------------------------
Step2. Dockerfile 빌드하여 이미지 생성
# docker build -t nodemon-test .
Step3. 이미지 사용하여 컨테이너 생성 및 실행
# docker run -d -p 8080:3001 -v $(pwd):/app nodemon-test
※ nodemon은 바인드 마운트 필수 입니다.
Step4. 방화벽 포트 오픈
# firewall-cmd --permanent --add-port=8080/tcp
# firewall-cmd --reload
Step5. 접속
(브라우저) http://<-컨테이너 IP->:<-포트->

(로컬 시스템) # curl http://<-컨테이너 IP->:<-포트->
Step6. 로컬 시스템에서 server.js 파일 변경
-----------------------------------------------------------------------------------------------
res.end('Hello Normal World\n'); => res.end('Hello Nodemon World\n');
-----------------------------------------------------------------------------------------------
Step7. 변경된 사항 반영 확인

=> 변경된 사항 (Normal -> Nodemon) 정상 적용된 것 확인할 수 있습니다.
'여러가지 > Docker & AWS' 카테고리의 다른 글
[실습](6) mariadb 구축 (0) | 2024.06.05 |
---|---|
[실습](5) node 구축 - nodemon & 환경 변수 (0) | 2024.06.05 |
[실습](3) 로컬 <-> 컨테이너 파일 전송 (0) | 2024.06.05 |
[실습](2) Dockerfile 사용하여 자체 이미지 빌드 (0) | 2024.06.05 |
[실습](1) 로컬 실행 NodeJS 애플리케이션 (0) | 2024.06.04 |