71 lines
2.3 KiB
YAML
71 lines
2.3 KiB
YAML
# infra/docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
# Node 1: Primary Node (Bootstrap)
|
|
cockroach-1:
|
|
image: cockroachdb/cockroach:latest
|
|
container_name: cockroach-1
|
|
command: start --insecure --host=cockroach-1 --listen-addr=cockroach-1:26257 --advertise-addr=cockroach-1:26257 --join=cockroach-1:26257,cockroach-2:26257,cockroach-3:26257
|
|
restart: always
|
|
volumes:
|
|
- cockroach1:/cockroach/data
|
|
ports:
|
|
- "26257:26257" # Default SQL Port
|
|
- "8080:8080" # Web UI Port (สำหรับดูสถานะ Cluster)
|
|
|
|
# Node 2: Joining Node
|
|
cockroach-2:
|
|
image: cockroachdb/cockroach:latest
|
|
container_name: cockroach-2
|
|
command: start --insecure --host=cockroach-2 --listen-addr=cockroach-2:26257 --advertise-addr=cockroach-2:26257 --join=cockroach-1:26257,cockroach-2:26257,cockroach-3:26257
|
|
restart: always
|
|
volumes:
|
|
- cockroach2:/cockroach/data
|
|
|
|
# Node 3: Joining Node
|
|
cockroach-3:
|
|
image: cockroachdb/cockroach:latest
|
|
container_name: cockroach-3
|
|
command: start --insecure --host=cockroach-3 --listen-addr=cockroach-3:26257 --advertise-addr=cockroach-3:26257 --join=cockroach-1:26257,cockroach-2:26257,cockroach-3:26257
|
|
restart: always
|
|
volumes:
|
|
- cockroach3:/cockroach/data
|
|
|
|
# 4. Init Cluster (ตั้งค่าครั้งแรก)
|
|
init-cluster:
|
|
image: cockroachdb/cockroach:latest
|
|
container_name: init-cluster
|
|
command: init --insecure --host=cockroach-1:26257
|
|
depends_on:
|
|
- cockroach-1
|
|
- cockroach-2
|
|
- cockroach-3
|
|
# ตั้งค่าให้ Container ตายหลังจากรัน init เสร็จ (ไม่รันซ้ำ)
|
|
restart: "no"
|
|
|
|
# Backend/API (DRF)
|
|
backend:
|
|
build:
|
|
context: ../backend
|
|
dockerfile: Dockerfile
|
|
volumes:
|
|
- ../backend:/app
|
|
ports:
|
|
- "8000:8000"
|
|
# เปลี่ยนให้พึ่งพา Node ฐานข้อมูลโดยตรง (เพราะ entrypoint script จะจัดการการรอ)
|
|
depends_on:
|
|
- cockroach-1
|
|
- cockroach-2
|
|
- cockroach-3
|
|
environment:
|
|
DB_HOST: cockroach-1
|
|
DB_PORT: 26257
|
|
DB_NAME: my_db
|
|
DB_USER: root
|
|
DB_PASSWORD: ''
|
|
|
|
volumes:
|
|
cockroach1:
|
|
cockroach2:
|
|
cockroach3: |