rinious19/numerical-method-website:latest

Manifest digest

sha256:cbdb7b731e55d779cd50437d8d5501840d67bdd9dd7273b9815d0a52e7cd563b

Last pushed

about 2 months by rinious19

Type

Compose

Manifest digest

sha256:cbdb7b731e55d779cd50437d8d5501840d67bdd9dd7273b9815d0a52e7cd563b

Compose file content

#@ เวอร์ชันของ 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 commands

docker compose -f oci://rinious19/numerical-method-website:latest up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image + 1 more

MongoDB document databases provide high availability and easy scalability.


Pulls

1B+

Stars

10738

Last Updated

13 days

Image

It's Backend Service of Numerical Method Website (Numerical Method Project)


Pulls

96

Stars

0

Last Updated

about 2 months

Image

It's Frontend Service of Numerical Method Website (Numerical Method Project)


Pulls

62

Stars

0

Last Updated

about 2 months