ครั้งแรกในขณะที่นักเทียบท่าบางครั้งเห็นและใช้เป็นระบบบรรจุภัณฑ์เฉพาะกิจมันจริงแก้ปัญหาที่แตกต่างกันโดยสิ้นเชิง: นักเทียบท่าเป็นเรื่องเกี่ยวกับการใช้งานโปรแกรม หางระบบช่วยในการอธิบายถึงการบริการที่สามารถปรับขนาดที่จะและในการควบคุมฝูงของภาชนะบรรจุ แพ็คเกจ Debianใช้สำหรับการติดตั้งโปรแกรมและสามารถจัดการการพึ่งพาระหว่างเวอร์ชันซอฟต์แวร์ได้ นักเทียบท่า แน่นอนไม่มีคุณสมบัติเป็นระบบบรรจุภัณฑ์ที่สืบเชื้อสายมา: "แพคเกจ" แต่ละคนสามารถมีเพียงหนึ่งการพึ่งพาระบบไม่มีตัวเลือก "สร้างซ้ำ" และไม่สนับสนุนข้อ จำกัด รุ่นที่ซับซ้อน!
คำตอบที่เป็นไปได้คือถ้าคุณยินดีที่จะเขียนแพ็คเกจ Debianสำหรับแอปพลิเคชันของคุณคุณสามารถใช้Dockerเพื่อปรับใช้แอปพลิเคชันของคุณ สามารถทำได้ด้วยสคริปต์การกำหนดค่าapt_setup.sh
ซึ่งจะมีลักษณะ
apt-key add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
<YOUR RELEASE OFFICER PGP KEY GOES HERE>
EOF
cat >> /etc/apt/sources.list <<EOF
deb https://my.organisation.org/repo debian-jessie main
apt-get update -y
apt-get upgrade -y
EOF
และDockerfile
ตามแนวของ
ADD apt_setup.sh /root
RUN sh -ex /root/apt_setup.sh && rm /root/apt_setup.sh
RUN apt-get install -y my-node-js-package
(ในสถานการณ์ของคุณโดยเฉพาะapt_setup.sh
จะมีความซับซ้อนมากขึ้นเพิ่มที่เก็บnodesourceและแพคเกจผู้ช่วยบางอย่างเช่นapt-transport-https .)
ดังนั้นจึงเป็นไปได้ที่จะใช้แพ็คเกจ DebianและDockerพร้อมกันอย่างไรก็ตาม ...
ลำไส้ของฉัน […] กำลังบอกฉันว่าถ้าแพ็คเกจ deb เหมาะสมดีมันจะเป็นเรื่องธรรมดามากขึ้น
นี่คือการผูกปมที่ถูกต้องซึ่งทำให้เราถามตนเองว่าทำไมนักเทียบท่าพิสูจน์ให้ได้รับความนิยมในฐานะระบบบรรจุภัณฑ์เฉพาะกิจในขณะที่มันไม่ได้ตั้งใจที่จะเป็นหนึ่งเดียว (ดูด้านบน.)
ระบบบรรจุภัณฑ์ "เป็นทางการ" จากการจัดจำหน่ายที่กำหนดเป็นเพียงความเป็นไปได้ในหมู่ผู้อื่นในการติดตั้งซอฟต์แวร์ในสภาพแวดล้อมการคำนวณบางอย่าง มีแหล่งข้อมูลอื่น ๆ มากมายเช่นผู้จัดการแพคเกจเฉพาะชุมชนเช่นnpmหรือopam,ต้นไม้พอร์ตเช่นpkgsrcและการแจกจ่ายซอร์สโค้ดธรรมดา จากมุมมองนี้มันเป็นเรื่องง่ายที่จะเข้าใจความสำเร็จของนักเทียบท่าในฐานะระบบบรรจุภัณฑ์เฉพาะกิจ :
ตอนนี้ความแข็งแกร่งของแพ็คเกจ Debianบนอิมเมจ Dockerเป็นระบบแพ็คเกจเป็นอย่างไร การควบคุมการพึ่งพาที่แน่นหนาในการติดตั้ง (ความเป็นไปได้ในการอัปเกรดและดาวน์เกรดยังมีอยู่ แต่ไม่มีความสำคัญในทางปฏิบัติหากเราใช้รูปแบบเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบ) สิ่งนี้นำไปสู่
ข้อสรุป
หากคุณมีเพียงผลิตภัณฑ์เดียวที่ปรับใช้ในรุ่นเดียว (ซึ่งเป็นเรื่องปกติสำหรับ SaaS) ความต้องการการจัดการเวอร์ชันของคุณนั้นง่ายมากและการใช้Dockerเป็นตัวจัดการแพคเกจเฉพาะกิจไม่ควรมีข้อบกพร่องใด ๆ ทันทีที่คุณทำงานกับผลิตภัณฑ์รุ่นเดียวหรือหลายผลิตภัณฑ์ความซับซ้อนของปัญหาข้อ จำกัด รุ่นที่คุณต้องแก้ไขเพิ่มขึ้นและคุณต้องการเครื่องมือที่เหมาะสมสำหรับสิ่งนี้ซึ่งอาจเป็นแพคเกจ Debianหรือระบบการจัดการการกำหนดค่าบางอย่างถ้าคุณเป็น ซอฟต์แวร์ผสมจากต้นกำเนิดที่แตกต่างกัน