วิธีสร้างแอปพลิเคชัน NodeJS ด้วย Docker

บทความนี้จะอธิบายวิธีการสร้างแอปพลิเคชัน NodeJS ด้วย Docker Containerization Docker อนุญาตให้แพคเกจและเรียกใช้แอปพลิเคชันเป็นคอนเทนเนอร์

วันนี้เรากำลังเริ่มต้นบทเรียนเกี่ยวกับเครื่องมือพัฒนาซอฟต์แวร์ และบทความแรกนี้ครอบคลุมวิธีการบรรจุแอปพลิเคชัน Node.js โดยใช้ Docker Docker ช่วยให้นักพัฒนาสามารถบรรจุและเรียกใช้แอปพลิเคชันเป็นคอนเทนเนอร์ เนื่องจากคอนเทนเนอร์เป็นกระบวนการที่แยกได้และเป็นทางเลือกที่มีน้ำหนักเบาสำหรับเครื่องเสมือนจริง บทความนี้อธิบายถึงวิธีการสร้างแอปพลิเคชัน NodeJS ด้วย Docker Containerization มาเริ่มกันเลย!

นักเทียบท่าคืออะไร

Docker เป็นชุดของแพลตฟอร์มเป็นผลิตภัณฑ์บริการที่ใช้การจำลองเสมือนระดับระบบปฏิบัติการเพื่อส่งซอฟต์แวร์ในแพ็คเกจที่เรียกว่าคอนเทนเนอร์ มันเป็นแพลตฟอร์มเปิดสำหรับการพัฒนาการจัดส่งและการใช้งานแอปพลิเคชัน Docker ช่วยให้คุณสามารถแยกแอปพลิเคชันของคุณออกจากโครงสร้างพื้นฐานของคุณเพื่อให้คุณสามารถส่งมอบซอฟต์แวร์ได้อย่างรวดเร็ว Docker ใช้สถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ ลูกค้า Docker พูดคุยกับ Docker Daemon ซึ่งยกระดับการสร้างอาคารวิ่งและแจกจ่ายคอนเทนเนอร์นักเทียบท่าของคุณอย่างหนัก ไคลเอนต์ Docker และ Daemon สื่อสารโดยใช้ REST API, UNIX SOCKETS หรืออินเทอร์เฟซเครือข่าย นี่คือแผนภาพของสถาปัตยกรรมนักเทียบท่า

สถาปัตยกรรมนักเทียบท่า

สิ่งที่จำเป็นต้องมี

  • เซิร์ฟเวอร์ Ubuntu
  • ติดตั้ง Docker บนเซิร์ฟเวอร์
  • ติดตั้ง node.js npm

แอปพลิเคชันตั้งค่า Node.js

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

npm init -y
npm i -s express

คำสั่งด้านบนจะตั้งค่าแอปพลิเคชัน Node.js พร้อมเฟรมเวิร์กด่วนที่ติดตั้งเป็นการพึ่งพา มาเพิ่มรหัสต่อไปนี้ลงในไฟล์ app.js

const express = require(‘express’);
const app = express();
app.get(‘/’, function(req,res){
  res.send(“Hello World”);
});
const port = 3000;
app.listen(port, function () {
  console.log(‘Listening on port 3000!’)
})

เริ่มแอปพลิเคชันด้วยโหนดแอป. js

node app.js

นำทางเบราว์เซอร์ของคุณไปที่ http: // \ _server \ _ip: 3000 คุณจะเห็นหน้า Landing Page ต่อไปนี้ ตอนนี้คุณมีแอปพลิเคชันและกำลังทำงานอยู่ ตอนนี้เราสามารถก้าวต่อไปเพื่อสร้าง DockerFile ที่จะช่วยให้เราสามารถสร้างใหม่และปรับขนาดแอปพลิเคชันนี้

เขียน DockerFile

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

vi Dockerfile

เพิ่มคำสั่ง ต่อไปนี้จาก เพื่อตั้งค่ารูปภาพพื้นฐานของแอปพลิเคชัน:

FROM node:12-alpine

{{LINE_43}} {{LINE_44}} คุณสามารถเพิ่มไฟล์. dockerignore เพื่อลบไฟล์ที่ไม่ได้เป็นของอิมเมจ Docker {{LINE_46}} {{LINE_47}} มาสร้าง node_modules ไดเรกทอรีย่อยใน /home /node พร้อมกับไดเรกทอรีแอพ สิ่งนี้จะช่วยให้มั่นใจได้ว่าพวกเขามีสิทธิ์ที่จำเป็นซึ่งจะมีความสำคัญเมื่อเราสร้างโมดูลโหนดท้องถิ่นในคอนเทนเนอร์ด้วยการติดตั้ง NPM

...
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app

ถัดไปตั้งค่าไดเรกทอรีการทำงานของแอปพลิเคชันเป็น/home/node/app:

...
WORKDIR /home/node/app

ถัดไปคัดลอก package.json และ package-lock.json กำหนดไฟล์โครงการให้กับผู้ใช้ที่ไม่ใช่รูต“ โหนด” จากนั้นเรียกใช้การติดตั้ง NPM

...
COPY package*.json ./
USER node
RUN npm install

คัดลอกรหัสแอปพลิเคชันของคุณด้วยสิทธิ์ที่เหมาะสมไปยังไดเรกทอรีแอปพลิเคชันบนคอนเทนเนอร์

...
COPY --chown=node:node . .

เปิดเผยคำสั่งเพื่อเปิดเผยพอร์ต:

...
EXPOSE 3000
CMD [ "node", "app.js" ]

DockerFile เวอร์ชันสุดท้ายควรมีลักษณะเช่นนี้:

FROM node:12-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY --chown=node:node . .
EXPOSE 3000
CMD [ "node", "app.js" ]

สร้างภาพและเรียกใช้คอนเทนเนอร์

เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างอิมเมจนักเทียบท่าของคุณ

docker build -t <<image_name>> .

สิ่งนี้จะสร้างภาพ Docker image ซึ่งคุณสามารถตรวจสอบได้โดยใช้คำสั่ง Docker Images ตอนนี้เป็นไปได้ที่จะสร้างคอนเทนเนอร์ด้วยภาพนี้โดยใช้คำสั่งต่อไปนี้:

docker run — name <<container_name>> -p 3000:3000 -d <<image_name>>

สิ่งนี้จะเริ่มต้นคอนเทนเนอร์ที่คุณสามารถตรวจสอบได้โดยเรียกใช้คำสั่ง Docker PS ตอนนี้ในเบราว์เซอร์ของคุณหากคุณเข้าถึง http: // localhost: 3000 คุณจะเห็นแอป Node.js ของคุณกำลังทำงานอยู่ อย่างไรก็ตามคราวนี้มันทำงานจากคอนเทนเนอร์ Docker ของคุณ

บทสรุป

การพัฒนาด้วยคอนเทนเนอร์ Docker นั้นง่ายและง่ายมาก Docker ช่วยให้นักพัฒนาสามารถบรรจุและเรียกใช้แอปพลิเคชันเป็นคอนเทนเนอร์ ในบทช่วยสอนนี้เราได้เรียนรู้วิธีการสร้างแอปพลิเคชัน Node.js โดยใช้คอนเทนเนอร์ Docker บน Ubuntu ในบทความที่กำลังจะมาถึงเราจะเขียนเกี่ยวกับการใช้ Docker เพิ่มเติมและเราจะหารือเกี่ยวกับเครื่องมืออื่น ๆ

สำรวจ