MEAN

วิธีเรียกใช้ MongoDB จาก MEAN Stack ที่อยู่บน Docker Container

เรื่องที่เกี่ยวข้อง - Docker, Express, MEAN, MongoDB, Node

โดยปกติถ้าเราสร้าง Web API หรือ Web Application ด้วย MEAN Stack และใช้ฐานข้อมูลเป็น MongoDB บนเครื่องเราตรงๆ จะไม่ตื่นเต้นอะไรเท่าไหร่

แต่ถ้าเกิดเราต้องการเอามาใช้กับ Docker นี่สิ สนุกสนานกันแน่ๆ ซึ่งในคอร์สอบรมเรียนรู้ MEAN Stack แบบนอกสถานที่ ก็มีการทดสอบ Deploy ตัวแอพพลิเคชั่น MEAN Stack บน Docker ด้วย

ซึ่งตัว MEAN Stack จะอยู่บน Docker Container คนละตัวกับฐานข้อมูล MongoDB จุดนี้ใครยังไม่ค่อยคุ้นกับการทำงานของ Docker อาจจะตาแตกได้ โค้ชพลแรกๆ ก็เหมือนกันล่ะ มึนไปหลายวันทีเดียว

ดังนั้นแชร์เคล็ดลับเล็กๆ น้อยๆ มาไว้ที่นี่ เวลาเริ่มจะได้ง่ายขึ้นกันนะครับ

โดยตัวอย่างนี้จะต่อเนื่องจาก วิธีสร้าง Docker Image ให้กับ Express และ Node.js แบบง่ายๆ นะ ดังนั้นเราควรจะมีไฟล์ต่อไปนี้ในโฟลเดอร์โปรเจคอยู่แล้ว

  1. Dockerfile
  2. .dockerignore

1. ปรับส่วนของการเชื่อมต่อ MongoDB

โดยในส่วนของ Express Web Server โค้ชพลใช้ monk module ในการเชื่อมต่อกับ MongoDB ก็ปรับส่วน IP เป็น mongo ได้เลย

let db = require('monk')('mongo:27017/employee');

เพราะส่วนนี้เราจะเชื่อมต่อกับ Docker Container ของ MongoDB อีกที โดยใช้ชื่อว่า mongo

2. สร้างไฟล์ docker-compose.yml

ในที่นี้เราจะใช้คำสั่ง docker-compose เป็นตัว “ปลุก” Image ทั้ง MEAN Stack และ MongoDB ขึ้นมา

ให้เราสร้างไฟล์ docker-compose.yml ไว้ในโฟลเดอร์ของโปรเจค MEAN Stack ของเรา

version: "2"
services:
  web:
    build: .
    volumes:
      - ./:/usr/src/app/
       - /usr/src/app/node_modules
    ports:
      - "80:3000"
    links:
      - mongo
  mongo:
    image: mongo
    ports:
      - "27017:27017" 

บันทึกไฟล์ และ

3. รันไฟล์ docker-compose.yml

รันคำสั่ง docker-compose up เท่านี้ระบบก็จะสร้าง Container ขึ้นมาจาก Image ทั้งฝั่งของโปรเจค MEAN Stack และ MongoDB

ถ้ามีการ Build Image ใหม่ โดยเฉพาะฝั่งของ MEAN Stack Container ก็ใช้คำสั่ง docker-compose build หรือ docker-compose up --build ได้นะ

อ้างอิง

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save