● 실습 환경
(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
ENV PORT=3001 # 환경 변수
EXPOSE $PORT
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 패키지
}
}
-------------------------------------------------------- package-lock.json ------------------------------------------------------
{
"name": "test",
"version": "1.0.0",
"lockfileVersion": 1
}
------------------------------------------------------------ server.js ----------------------------------------------------------------
const http = require('http');
const hostname = '0.0.0.0';
const port = process.env.PORT || 3001; # 환경 변수
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello Nodemon World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
-----------------------------------------------------------------------------------------------------------------------------------------
Step 2. Dockerfile 빌드하여 이미지 생성
# docker build -t nodemon .
Step3. 이미지 사용하여 컨테이너 생성 및 실행
# docker run -d --name nodemon_container -p 8080:3001 -v $(pwd):/app nodemon:latest
※ nodemon은 바인드 마운트 필수 입니다.
Step4. 방화벽 포트 오픈
# firewall-cmd --permanent --add-port=8080/tcp
# firewall-cmd --reload
Step5. 외부 접속
Step6. 테스트
[참고] https://uyijune15.tistory.com/205
[정리] nodemon
Step 1. 파일 생성(파일) Dockerfile-------------------------------------------------------------------------------------FROM node:latestRUN npm install -g nodemon # nodemon 패키지 설치 WORKDIR /appCOPY package.json /appRUN npm installCOP
uyijune15.tistory.com
(+) 네트워크 및 ip 설정 컨테이너 빌드
# docker run -d --name nodemon_container -p 8080:3001 --net container_network
--ip 192.168.112.9 -v $(pwd):/app nodemon:latest
# curl http://192.168.112.9:3001
단, 컨테이너 IP로는 DB, SSH, 브라우저 모두 직접 접속 안한다.
설정한 포트 &로컬 시스템을 통해 포트포워딩 하여 접속한다.
'여러가지 > Docker & AWS' 카테고리의 다른 글
[실습](7) Rocky Linux - ssh 구축 (0) | 2024.06.05 |
---|---|
[실습](6) mariadb 구축 (0) | 2024.06.05 |
[실습](4) nodemon (0) | 2024.06.05 |
[실습](3) 로컬 <-> 컨테이너 파일 전송 (0) | 2024.06.05 |
[실습](2) Dockerfile 사용하여 자체 이미지 빌드 (0) | 2024.06.05 |