inflearn logo
강의

Course

Instructor

Learning Docker and CI Environments by Following Along [Updated 2023.11]

Writing a Docker Compose File

docker-compose up 에러 공유 드립니다

290

lim3617

7 asked

0

version: "3.9"
services:
  redis-server: 
    image: 'redis'
    container_name: redis-container
    restart: unless-stopped
    ports:
      - "6379:6379"
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 5

  node-app:
    depends_on:
      redis-server:
        condition: service_healthy
    build:
      context: .
      dockerfile: Dockerfile
    container_name: node-app
    restart: on-failure
    ports:
      - "5000:8080"
    environment:
      - REDIS_URL=redis://redis-server:6379

 

const express = require('express');
const redis = require('redis');

// Redis 클라이언트 생성
const client = redis.createClient({
  url: process.env.REDIS_URL
});

// Redis 연결
(async () => {
  try {
    await client.connect(); // 클라이언트 연결
    console.log('Connected to Redis');
  } catch (err) {
    console.error('Redis connection error:', err);
  }
})();

const app = express();

// 초기값 설정
(async () => {
  try {
    await client.set('number', 0);
  } catch (err) {
    console.error('Failed to initialize Redis key:', err);
  }
})();

app.get('/', async (req, res) => {
  try {
    // Redis 값 읽기 및 증가
    const number = await client.get('number');
    await client.set('number', parseInt(number) + 1);

    res.send(`숫자가 1씩 올라갑니다. ${number}`);
  } catch (err) {
    console.error('Error handling Redis operations:', err);
    res.status(500).send('Server error');
  }
});

app.listen(8080, () => {
  console.log('Server is running on port 8080');
});

 

node는 18버전 레디스 클라이언트 모듈은 4.7.0 입니다

aws docker github ci/cd travis-ci 데이터-엔지니어링

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
lim3617님, docker-compose up을 실행할 때 발생하는 에러와 관련하여 여러 가지 고려해볼 수 있는 문제와 해결 방법을 안내드리겠습니다.

가능성 있는 문제와 해결 방법

  1. 이미지 빌드 오류 확인:

    • docker-compose up 시 로그를 확인하여 이미지를 빌드하는 과정에서 발생하는 오류가 있는지 먼저 확인해보세요.
  2. 네트워크 문제:

    • REDIS_URL이 잘못 설정되어 있는지 확인하세요. redis://redis-server:6379가 올바른지 docker ps 명령어로 컨테이너들이 제대로 작동 중인지와 네트워크 이름을 확인하세요.
  3. Redis 클라이언트 연결 문제:

    • Redis 클라이언트가 환경 변수를 사용하여 URL에 접근하도록 설정되어 있는지 확인하세요. 실행 전에 REDIS_URL 환경 변수가 제대로 설정되어 있는지 확인해보세요.

아래의 게시물들이 유사한 문제를 다루고 있으니 참고하시면 도움이 될 것입니다:
- compose-up 에러시 실행되지 않는 문제 해결
- node 쪽 에러 해결: redis 및 서비스 연결 문제

또한, 서버 시작과정에서 발생할 수 있는 다양한 원인에 대해 관심을 가져야 합니다. 예를 들어, 초기 Redis 연결시도에서 발생할 수 있는 네트워크 오류와 환경 변수 충돌 및 무효한 서버 포트 설정 등을 점검해야 합니다.

아래 댓글에서 유사한 코드를 제공하였으니 코드를 비교하면서 실행해보시기 바랍니다:
- Redis 경로 및 네트워크 설정 문제 해결

const express = require("express");
const redis = require("redis");

const client = redis.createClient({
  url: "redis://redis-server:6379",
  socket: {
    reconnectStrategy: times => Math.min(times * 50, 500),
  }
});

const app = express();

app.get('/', async (req, res) => {
  await client.connect();
  let number = await client.get('number') || 0;
  
  number = parseInt(number) + 1;
  
  await client.set("number", number);
  res.send(`숫자가 1씩 올라갑니다. 숫자: ${number}`);
  await client.disconnect();
});

app.listen(8080, () => {
  console.log('Server is running on port 8080');
});

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Docker Containers간 통신 할 때 나타나는 에러 강의 질문

0

79

1

WINDOW + Vite를 사용하여 소스 코드 변경이 반영되지 않는 현상

0

79

1

도커 컨테이너 끼리 SSL 통신 시 문제가 생깁니다..

0

215

1

도표 강의 자료 사용이 불가합니다. (권한 문제)

0

135

1

Docker compose 관련 공유

0

140

1

트레비스가 유료화가 되어 테스트가 어려워 챕터8에서 고민중입니다.

0

78

1

강사님 혹시 vscode 어떤 테마 쓰시나요..?

0

285

1

The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.

0

105

1

travis ci가 이제 유료화가 된 것 같습니다;;;

0

209

2

Elastic Beanstalk에서 도메인 클릭시 react 이미지가 안나오고 다른 화면이 나오는데

0

170

1

도커 빌드 시간이 너무 오래걸려요..

0

1054

2

docker-compose down 이후에도 containers에 redis가 남아 있는 이유

0

167

1

도커 볼륨이 작동이 안되는것 같아서 질문드립니다!

0

212

2

docker-compose 가 Docker Desktop 에서 빠진건가요? command not found 라고 뜨네요

0

277

1

Error response from daemon: The system cannot find the file specified.

0

219

1

draw.io 오류

0

646

1

Docker Volume 오류(reference, lowercase)

0

564

1

[섹션3 - 내가 만든 이미지 기억하기 쉬운 이름 주기] 네이밍/태그 에러

0

226

1

axios오류 문의드립니다!

0

333

1

node.js version

0

485

1

안녕하세요 마지막 강의 질문 있습니다.

0

434

1

Deploy를 계속 실패합니다.

3

1382

4

TravisCI에서 계속 에러가 납니다....

0

356

1

buildkit 관련 문의

2

454

2