집 >데이터 베이스 >MySQL 튜토리얼 >시작하기 전에 Docker Compose 애플리케이션의 데이터베이스가 준비되었는지 어떻게 확인할 수 있나요?
Docker Compose 애플리케이션에 대한 데이터베이스 준비 보장
데이터베이스 마이그레이션 또는 애플리케이션 시작의 조기 실행을 방지하려면 데이터베이스가 컨테이너는 앱 컨테이너가 프로세스를 시작하기 전에 완전히 작동합니다. Docker Compose의 healthcheck 및 dependency_on 옵션을 사용하면 데이터베이스 연결을 확인하고 데이터베이스가 준비될 때까지 앱 시작을 지연시키는 메커니즘을 설정할 수 있습니다.
제공된 예에서 데이터베이스 컨테이너(db)에 대한 상태 확인은 mysqladmin을 활용합니다. localhost를 ping하고 데이터베이스가 연결을 허용하는지 확인하는 명령입니다. 이 테스트는 데이터베이스가 작동 중일 뿐만 아니라 액세스 가능함을 확인합니다.
제공된 Docker Compose 파일의 수정된 버전은 다음과 같습니다.
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 컨테이너가 상태 확인을 성공적으로 통과하여 데이터베이스가 완전히 작동하고 연결 준비가 되었음을 나타낼 때까지 일시 중지된 상태로 유지됩니다. 이렇게 하면 데이터베이스에 액세스할 수 있을 때까지 앱이 마이그레이션을 수행하거나 처리를 시작하지 않도록 하여 잠재적인 문제나 데이터 무결성 오류를 방지할 수 있습니다.
위 내용은 시작하기 전에 Docker Compose 애플리케이션의 데이터베이스가 준비되었는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!