บทความนี้จะอธิบายวิธีการสร้างแอปพลิเคชัน NodeJS ด้วย Docker Containerization Docker อนุญาตให้แพคเกจและเรียกใช้แอปพลิเคชันเป็นคอนเทนเนอร์
วันนี้เรากำลังเริ่มต้นบทเรียนเกี่ยวกับเครื่องมือพัฒนาซอฟต์แวร์ และบทความแรกนี้ครอบคลุมวิธีการบรรจุแอปพลิเคชัน Node.js โดยใช้ Docker Docker ช่วยให้นักพัฒนาสามารถบรรจุและเรียกใช้แอปพลิเคชันเป็นคอนเทนเนอร์ เนื่องจากคอนเทนเนอร์เป็นกระบวนการที่แยกได้และเป็นทางเลือกที่มีน้ำหนักเบาสำหรับเครื่องเสมือนจริง บทความนี้อธิบายถึงวิธีการสร้างแอปพลิเคชัน NodeJS ด้วย Docker Containerization มาเริ่มกันเลย!
- นักเทียบท่าคืออะไร
- ข้อกำหนดเบื้องต้น
- แอปพลิเคชัน Setup Node.js
- เขียน DockerFile
- สร้างภาพและเรียกใช้คอนเทนเนอร์ Docker
- บทสรุป
นักเทียบท่าคืออะไร
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 เพิ่มเติมและเราจะหารือเกี่ยวกับเครื่องมืออื่น ๆ