2025년 2월 19일

김동환·6일 전
0

이 docker-compose 파일은 두 개의 서비스(컨테이너)를 정의합니다: appredis. 각각의 역할과 설정은 아래와 같습니다.

1. 버전

  • version: '3'
    Docker Compose 파일 버전을 3으로 지정합니다. 이는 Docker Compose의 구성 형식을 정의합니다.

2. 서비스: app

  • build
    • context: .
      현재 디렉토리를 빌드 컨텍스트로 사용합니다.
    • dockerfile: Dockerfile
      루트 디렉토리에 있는 Dockerfile을 사용하여 이미지를 빌드합니다.
  • ports
    • '3000:3000'
      호스트의 3000번 포트를 컨테이너의 3000번 포트에 매핑합니다.
      → 이를 통해 외부에서 접속할 때 호스트의 3000번 포트로 접근하면 컨테이너 내의 애플리케이션에 연결됩니다.
  • environment
    • REDIS_HOST: redis
      애플리케이션 내부에서 사용될 환경변수로, Redis 서버의 호스트명을 redis로 지정합니다.
      (Docker Compose 내에서 서비스 이름을 호스트명으로 사용 가능)
    • REDIS_PORT: 6379
      Redis 서버의 포트를 지정합니다.
  • depends_on
    • redis
      app 서비스는 redis 서비스가 시작된 후에 실행되도록 의존성을 설정합니다.

3. 서비스: redis

  • build
    • context: ./src/redis
      Redis Dockerfile이 위치한 ./src/redis 폴더를 빌드 컨텍스트로 지정합니다.
    • dockerfile: Dockerfile
      해당 디렉토리 안에 있는 Dockerfile을 사용하여 Redis 이미지를 빌드합니다.
  • ports
    • '6379:6379'
      호스트의 6379번 포트를 컨테이너의 6379번 포트에 매핑합니다.
      → 이를 통해 외부나 다른 컨테이너(예: app)에서 호스트의 6379번 포트를 통해 Redis에 접속할 수 있습니다.

요약

  • app 서비스:
    Node.js 애플리케이션을 실행하는 컨테이너로, 3000번 포트를 사용하며, 내부에서 Redis 연결을 위해 REDIS_HOSTREDIS_PORT 환경변수를 설정합니다.
  • redis 서비스:
    Redis 서버를 실행하는 컨테이너로, Redis 설정 파일을 포함한 Dockerfile을 사용하여 이미지를 빌드하고, 6379번 포트를 개방합니다.

이 구성을 통해 Docker Compose는 두 컨테이너가 서로 네트워크 상에서 이름(예: redis)으로 통신할 수 있도록 설정되며, 애플리케이션 컨테이너는 Redis 컨테이너에 의존성을 가지게 됩니다.

profile
Node.js 7기

0개의 댓글

관련 채용 정보