인프런 커뮤니티 질문&답변

김기쁨님의 프로필 이미지

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

Docker Compose 파일 작성하기

(에러) docker-compose up --build 입력시 Error: connect ECONNREFUSE 127.0.0.1:6379

작성

·

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"]