docker run 명령어를 통해,
컨테이너 실행중
컨테이너 중지를 위해 , control +p,q를 이용해도 중지 안됨
다른 터미널에서 컨테이너 실행 중지 명령어 실행
: docker stop 컨테이너id
docker build -t 이미지명
: 이미지 생성
docker run -d -p locohost port:application port -v /user/src/app/node_modules -v $(pwd):/user/src/app dldbwls492/nodejs
: volumn을 이용한 어플리케이션 실행
2-1. node서버 확인 :
먼저, 실행중인 컨테이너 중지하기
(node app을 껐다가(중지) 켜야 소스코드의 수정이 반영되기 때문)
docker stop 컨테이너id
중지 후, docker run 재실행
docker run -d -p locohost port:application port -v /user/src/app/node_modules -v $(pwd):/user/src/app dldbwls492/nodejs
node 서버 확인
docker-compose 파일을 작성후, build한 경우에 발생한 에러
에러메세지 : (node:1) UnhandledPromiseRejectionWarning: Error: The client is closed
package.json 👇
{
"name": "docker-compose-app",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"express": "4.17.3",
"redis": "4.0.3"
},
"author": "",
"license": "ISC",
"description": ""
}
server.js 👇
const express = require("express");
const redis = require("redis");
//레디스 클라이언트 생성
const client = redis.createClient({
host: "redis-server",
port: 6379
});
// 새로운 어플린케이션(앱) 생성한것
const app = express();
// 어플리케이션(앱) 실행할 내용 구성하기
// 숫자는 0부터 시작
client.set("number", 0);
app.get('/', (req, res) => {
client.get("number", (err, number) => {
// 현재 숫자를 가져온 후에 1씩 추가
// 위에서 받은 number는 type이 str이므로, type 변환 필요 --> parseInt()
client.set("number", parseInt(number) + 1);
res.send("숫자가 1씩 올라갑니다. 숫자: " + number);
});
});
package.json 에서
redis 버전
수정후 👇
{
"name": "docker-compose-app",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"express": "4.17.3",
"redis": "3.0.1"
},
"author": "",
"license": "ISC",
"description": ""
}
"4.0.3"
-> "3.0.1"
로 수정도커로 react 실행하기(7강 - 생성된 도커 이미지로 리액트 앱 실행하기 편)
dldbwls492/docker-react-app2로 이미지 생성함
(이미, docker-react-app으로 생성한젹있어서 다시 생성함)
docker run dldbwls492/docker-react-app2
즉, 이미지이름으로 실행하였으나, start가 없다고 에러가 뜸.
package.json 파일을 확인해보아도, script 부분에 start부분이 이미 지정되어 있음
....
Dockerfile.dev 👇
FROM node:alpine
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY ./ ./
CMD ["npm", "run", "strat"]
Dockerfile.dev
CMD 명령어
수정후 👇
FROM node:alpine
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY ./ ./
CMD ["npm", "run", "start"]
CMD 명령어 : "strat"
-> "start"
로 스펠링 오타 수정