# 🔹 สร้าง network เฉพาะของ Kong (อย่าสลับชื่อ) networks: kong-api-gateway: name: kong-api-gateway driver: bridge # ใช้ network แบบ bridge (ค่า default) external: true services: # 🧱 DATABASE ของ Kong kong-database: image: postgres:15 container_name: kong-database environment: POSTGRES_USER: kong # user ที่ใช้เชื่อมต่อ POSTGRES_DB: kong # ชื่อ database POSTGRES_PASSWORD: kongpass # รหัสผ่าน ports: - "55432:5432" # ✅ เปลี่ยนพอร์ต host เป็น 55432 กันชนกับ Postgres หลัก volumes: - kong-data:/var/lib/postgresql/data networks: - kong-api-gateway # ✅ ผูก network เฉพาะ Kong # 🧩 Migrations (ใช้สร้างตารางใน DB ครั้งแรกเท่านั้น) kong-migrations: # ✅ ต้องอยู่ระดับเดียวกับ kong-database image: kong:3.5 container_name: kong-migrations depends_on: - kong-database environment: KONG_DATABASE: postgres KONG_PG_HOST: kong-database KONG_PG_USER: kong KONG_PG_PASSWORD: kongpass KONG_PG_DATABASE: kong networks: - kong-api-gateway # 🚪 ตัว Kong API Gateway หลัก kong: image: kong:3.5 container_name: kong-api-gateway # ✅ ตั้งชื่อให้ชัดเจน depends_on: - kong-database environment: KONG_DATABASE: postgres KONG_PG_HOST: kong-database KONG_PG_USER: kong # ✅ เพิ่ม USER KONG_PG_PASSWORD: kongpass KONG_PG_DATABASE: kong # ✅ เพิ่ม DATABASE KONG_ADMIN_LISTEN: 0.0.0.0:8001 KONG_PROXY_LISTEN: 0.0.0.0:8000, 0.0.0.0:8443 ssl KONG_ADMIN_GUI_URL: http://localhost:8002 KONG_ADMIN_GUI_LISTEN: 0.0.0.0:8002 KONG_ADMIN_ACCESS_LOG: /dev/stdout KONG_ADMIN_ERROR_LOG: /dev/stderr ports: - "8000:8000" # proxy (public) - "8443:8443" # proxy https - "8001:8001" # admin api - "8002:8002" # ✅ เพิ่มพอร์ตสำหรับ Kong Manager UI extra_hosts: - "host.docker.internal:host-gateway" # ให้ container มองเห็น host (Windows/Mac) networks: - kong-api-gateway # 💾 Volume สำหรับเก็บข้อมูล Postgres volumes: kong-data: