> 데이터 베이스 > MySQL 튜토리얼 > 종속 서비스를 시작하기 전에 Docker Compose에서 MySQL 준비 상태를 확인하는 방법은 무엇입니까?

종속 서비스를 시작하기 전에 Docker Compose에서 MySQL 준비 상태를 확인하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-24 13:01:14
원래의
215명이 탐색했습니다.

How to Ensure MySQL Readiness in Docker Compose Before Starting Dependent Services?

Docker Compose에서 MySQL 연결 준비 확인

Docker 컨테이너 영역에서는 필요한 종속성이 준비된 경우에만 애플리케이션이 시작되도록 하는 것이 중요합니다. 이는 연결을 허용하기 전에 초기화하고 준비해야 하는 MySQL과 같은 데이터베이스에 특히 중요합니다.

Docker Compose에서 presents_on 및 healthcheck 옵션은 컨테이너 간의 종속성 관계를 제어하는 ​​수단을 제공합니다. dependency_on 옵션은 컨테이너가 시작하기 전에 지정된 종속성이 정상일 때까지 기다려야 함을 지정합니다. 반면에 healthcheck 옵션은 컨테이너의 상태를 확인하기 위한 기본적인 테스트를 정의합니다.

MySQL 준비 상태를 검증하려고 시도할 때 다양한 방법이 탐색되었습니다.

  • 데이터베이스 디렉터리가 생성되었는지 확인: 데이터베이스 디렉터리를 생성하는 것은 필수 단계이지만 MySQL이 수락할 준비가 되었다고 보장하지는 않습니다.
  • MySQL 버전 검색: 이 테스트는 MySQL 서버에 대한 정보를 제공하지만 사용할 준비가 되었는지 여부는 나타내지 않습니다.
  • MySQL 관리자에게 핑 : 이 방법은 컨테이너를 정상으로 표시하지만 MySQL의 상태를 정확하게 반영하지 못할 수 있습니다.

다른 컨테이너를 시작하기 전에 MySQL이 준비되었는지 확인하는 솔루션은 다음과 같습니다.

version: "2.1"
services:
    api:
        build: .
        container_name: api
        ports:
            - "8080:8080"
        depends_on:
            db:
                condition: service_healthy
    db:
        container_name: db
        image: mysql
        ports:
            - "3306"
        environment:
            MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
            MYSQL_USER: "user"
            MYSQL_PASSWORD: "password"
            MYSQL_DATABASE: "database"
        healthcheck:
            test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
            timeout: 20s
            retries: 10
로그인 후 복사

이 구성에서 api 컨테이너는 db 컨테이너가 시작될 때까지 시작되지 않습니다. 이는 healthcheck 구성의 "ping" 테스트에 의해 결정됩니다. "ping" 테스트는 MySQL 서버에 연결할 수 있고 연결을 수락할 수 있는지 확인하여 api 컨테이너가 안전하게 작업을 시작할 수 있는지 확인합니다.

위 내용은 종속 서비스를 시작하기 전에 Docker Compose에서 MySQL 준비 상태를 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿