집 >데이터 베이스 >MySQL 튜토리얼 >종속 서비스를 시작하기 전에 Docker Compose에서 MySQL 준비 상태를 확인하는 방법은 무엇입니까?
Docker 컨테이너 영역에서는 필요한 종속성이 준비된 경우에만 애플리케이션이 시작되도록 하는 것이 중요합니다. 이는 연결을 허용하기 전에 초기화하고 준비해야 하는 MySQL과 같은 데이터베이스에 특히 중요합니다.
Docker Compose에서 presents_on 및 healthcheck 옵션은 컨테이너 간의 종속성 관계를 제어하는 수단을 제공합니다. dependency_on 옵션은 컨테이너가 시작하기 전에 지정된 종속성이 정상일 때까지 기다려야 함을 지정합니다. 반면에 healthcheck 옵션은 컨테이너의 상태를 확인하기 위한 기본적인 테스트를 정의합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!