sha256:cbdb7b731e55d779cd50437d8d5501840d67bdd9dd7273b9815d0a52e7cd563b
Last pushed
about 2 months by rinious19
Type
Compose
Manifest digest
sha256:cbdb7b731e55d779cd50437d8d5501840d67bdd9dd7273b9815d0a52e7cd563b
#@ เวอร์ชันของ Docker Compose
version: '3.8'
#@ ประกาศ "ตู้คอนเทนเนอร์" ทั้งหมดที่โปรเจคเราต้องใช้
services:
#* 1. ตู้คอนเทนเนอร์สำหรับ Frontend (React/VITE)
frontend:
# build:
# context: ./frontend # บอกให้สร้างจาก Dockerfile ที่อยู่ในโฟลเดอร์ frontend/
# ตั้งชื่อให้ตู้คอนเทนเนอร์
container_name: numerical-frontend
image: rinious19/numerical-method-frontend
# "เชื่อมประตู": เชื่อมประตูหมายเลข 5173 ของเครื่องคุณ เข้ากับประตูหมายเลข 80 ของตู้นี้ (ที่ Nginx เปิดไว้)
ports:
- "5173:80"
#* 2. ตู้คอนเทนเนอร์สำหรับ Backend (Node.js/Express)
backend:
# build:
# context: ./backend # บอกให้สร้างจาก Dockerfile ที่อยู่ในโฟลเดอร์ backend/
container_name: numerical-backend
image: rinious19/numerical-method-backend
ports:
- "8000:8000"
# "ตั้งค่าสภาพแวดล้อม" ให้กับโปรแกรมในตู้นี้
environment:
#! สำคัญมาก: บอกให้ Server ไปคุยกับ Database ที่ชื่อ "mongo" (ไม่ใช่ localhost)
# Docker Compose จะสร้าง Network ภายในให้ตู้ทั้งหมดคุยกันผ่านชื่อ Service ได้
- MONGO_URI=mongodb://mongo:27017/numericalMethodsDB
# บอก Server ว่าให้รับคำขอจาก Frontend ที่ Port 5173
- CLIENT_URL=http://localhost:5173
# "เงื่อนไขการเริ่มทำงาน": บอกให้ตู้นี้รอจนกว่าตู้ "mongo" จะพร้อมทำงานก่อน
depends_on:
- mongo
#* 3. ตู้คอนเทนเนอร์สำหรับ Database (MongoDB)
mongo:
# "ไม่ต้องสร้างเอง": บอกให้ไปดึง "ตู้สำเร็จรูป" ของ MongoDB เวอร์ชันล่าสุดมาจาก Docker Hub
image: mongo
container_name: numerical-mongodb
ports:
- "27017:27017"
# "สร้างพื้นที่เก็บของถาวร": บอกให้ข้อมูลทั้งหมดของ MongoDB ถูกเก็บไว้ใน Volume ชื่อ mongo-data
# ทำให้ถึงแม้เราจะลบตู้คอนเทนเนอร์ทิ้ง ข้อมูลของเราก็จะไม่หายไป
volumes:
- mongo-data:/data/db
# เป็นการเอาไฟล์ในเครื่องเรา ไปวางในโฟลเดอร์รันสคริปต์ของ Docker
- ./mongo-init/init.js:/docker-entrypoint-initdb.d/init.js:ro
#@ ประกาศ "พื้นที่เก็บของถาวร" ที่จะใช้
volumes:
mongo-data:
#@ ขั้นตอนสุดท้าย: รันทุกอย่างด้วยคำสั่งเดียว!**
#* หลังจากที่เราสร้างไฟล์ทั้ง 3 ไฟล์เสร็จเรียบร้อยแล้ว:
# 1. เปิด Terminal ใน VS Code (ต้องแน่ใจว่าอยู่ที่ Root ของโปรเจค ไม่ใช่ใน folder backend)
# 2. รันคำสั่ง: docker-compose up --build
# ● docker-compose up: คือคำสั่ง "เริ่มทำงานตามแผนผัง"
# ● --build: คือคำสั่งพิเศษที่บอกว่า "ถ้ามีการแก้ไข Dockerfile ให้สร้างตู้คอนเทนเนอร์ใหม่
# ด้วยนะ" (ควรใช้ในครั้งแรก)
# 3. วิธีหยุด: เมื่อต้องการหยุดการทำงานทั้งหมด ให้กลับไปที่ Terminal แล้วกด Ctrl + C แล้วตามด้วยคำสั่ง
# docker-compose down เพื่อปิดและลบตู้คอนเทนเนอร์ทั้งหมด
docker compose -f oci://rinious19/numerical-method-website:latest upUse the above command to pull and run the Compose file. Learn more.
MongoDB document databases provide high availability and easy scalability.
Pulls
1B+
Stars
10738
Last Updated
13 days
It's Backend Service of Numerical Method Website (Numerical Method Project)
Pulls
96
Stars
0
Last Updated
about 2 months
It's Frontend Service of Numerical Method Website (Numerical Method Project)
Pulls
62
Stars
0
Last Updated
about 2 months