From 88d069fe86b43ac8a973fd7e240feeeb9b3d1d9f Mon Sep 17 00:00:00 2001 From: TtiPo Date: Sun, 19 Jul 2026 05:24:00 +0900 Subject: [PATCH] =?UTF-8?q?compose=20=EC=95=88=EC=A0=95=ED=99=94:=20mysql?= =?UTF-8?q?=20healthcheck=20=EB=8C=80=EA=B8=B0,=20adminer=20IPv4=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A8=20=EB=B0=8F=20=EB=82=B4=EB=B6=80=20=EB=B0=94?= =?UTF-8?q?=EC=9D=B8=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - backend가 mysql 초기화 완료(healthy) 후에 기동하도록 depends_on 조건 추가 - adminer: IPv6 비활성 호스트에서 리슨 실패하던 것을 0.0.0.0 리슨으로 수정, 포트를 127.0.0.1로 바인딩해 외부 노출 차단 Co-Authored-By: Claude Fable 5 --- docker-compose.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9b541960..9274047c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,13 +12,22 @@ services: - mysql-data:/var/lib/mysql networks: - report-network + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"] + interval: 5s + timeout: 5s + retries: 20 + start_period: 30s adminer: image: adminer container_name: adminer restart: always + # IPv6 비활성 호스트에서 기본 [::]:8080 리슨이 실패하므로 IPv4로 지정 + command: ["php", "-S", "0.0.0.0:8080", "-t", "/var/www/html"] ports: - - "8083:8080" + # DB 관리툴은 서버 내부에서만 접근 (외부 접근은 SSH 터널 사용) + - "127.0.0.1:8083:8080" depends_on: - mysql networks: @@ -41,7 +50,8 @@ services: - ADMIN_PASS=${ADMIN_PASS:-kyeongmi} - JEMINI_KEY=${JEMINI_KEY} depends_on: - - mysql + mysql: + condition: service_healthy volumes: - ./backend/img:/app/img networks: