작성
·
857
0
docker-compose up --build 명령어 입력시
아래와 같은 에러가 발생합니다.
도움이 필요합니다.
server.js
const express = require('express');
const redis = require('redis');
// 레디스 클라이언트 생성
const client = redis.createClient({
host: 'redis-server',
port: 6379,
});
const app = express();
const port = 3200;
app.get('/', async (req, res) => {
await client.connect();
let number = await client.get('number');
if (number === null) {
number = 0;
};
console.log('Number: ' + number);
res.send("숫자가 1씩 올라갑니다. 숫자: " + number);
await client.set("number", parseInt(number) + 1);
await client.disconnect();
});
app.listen(port);
console.log(`server running port: ${port}`);
Dockerfile
FROM node
WORKDIR /usr/src/app
COPY ./ ./
RUN npm install
CMD ["node", "server.js"]
docker-compose.yml
version: "3"
services:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "49160:3200"
답변 1
0
저도 같은 오류였는데요,
redis image 이름 수정하니 해결됐어요!
ECONNREFUSED는 해결했는데 숫자가 제대로 안 나오길래 server.js 코드는 원래 코드대로 했어요.
const express = require('express');
const redis = require('redis');
//레디스 클라이언트 생성
const client = redis.createClient({
host: 'redis-server',
port: 6379,
});
const app = express();
client.set('number', 0);
app.get('/', (req, res) => {
client.get('number', (err, number) => {
client.set('number', parseInt(number) + 1);
res.send(`숫자가 1씩 올라갑니다. ${number}`);
});
});
app.listen(8080);
console.log('Server is running');
그리고 docker-compose.yml에서 image 이름 변경했어요.
redis npm 가봤더니 docker run 할 때 image 이름이 좀 다르더라구요.
docker-compose.yml
version: '3'
services:
redis-server:
image: 'redis/redis-stack-server:latest'
node-app:
build: .
ports:
- '5000:8080'
Dockerfile은 수정된 코드 적용했습니다. (노드 버전 안 적은)
FROM node
WORKDIR /usr/src/app
COPY ./ ./
RUN npm install
CMD ["node", "server.js"]