Jenkins เป็นเซิร์ฟเวอร์อัตโนมัติแบบโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลาย ซึ่งช่วยทำให้ส่วนต่างๆ ของกระบวนการพัฒนาซอฟต์แวร์เป็นอัตโนมัติ รวมถึงการสร้าง การทดสอบ และการปรับใช้แอปพลิเคชัน
Docker เป็นแพลตฟอร์มคอนเทนเนอร์ที่ช่วยให้เราสามารถเรียกใช้แอปพลิเคชันและบริการในสภาพแวดล้อมแบบแยกส่วนที่เรียกว่าคอนเทนเนอร์
ในบทช่วยสอนนี้ เราจะได้เรียนรู้วิธีรวม Jenkins เข้ากับ Docker ซึ่งช่วยให้เราสามารถสร้างเซิร์ฟเวอร์ของ Jenkins ที่ปรับขนาดได้และพกพาได้
หมายเหตุ: ในบทช่วยสอนนี้ เราจะใช้อิมเมจ jenkins/jenkins อย่างเป็นทางการจากที่เก็บ Docker Hub รูปภาพนี้มีรุ่นการสนับสนุนระยะยาว (LTS) ในปัจจุบันของ Jenkins ซึ่งพร้อมสำหรับการผลิต
สร้างเครือข่าย
ขั้นตอนแรกคือการสร้างเครือข่าย Docker ใหม่เพื่อแยกอินสแตนซ์ Jenkins สิ่งนี้อำนวยความสะดวกในการสื่อสารที่ดีขึ้น
ในการสร้างเครือข่ายบริดจ์ใน Docker เราสามารถรันคำสั่งต่อไปนี้:
$ เครือข่ายนักเทียบท่าสร้างเจนกินส์
สิ่งนี้จะสร้างเครือข่ายเชื่อมโยงที่เรียกว่าเจนกินส์
เรียกใช้คอนเทนเนอร์ Docker ของ Jenkins
เมื่อเรากำหนดค่าเครือข่ายแล้ว เราก็สามารถเรียกใช้คอนเทนเนอร์ Jenkins ได้โดยใช้อิมเมจ Jenkins Docker อย่างเป็นทางการ
นอกจากนี้เรายังระบุเครือข่ายและกำหนดค่าวอลุ่มสำหรับการคงอยู่ของข้อมูล Jenkins คำสั่งมีดังนี้:
นักเทียบท่าวิ่ง \--ชื่อ เจนกินส์นักเทียบท่า \
--rm \
--แยกออก \
--ได้รับสิทธิพิเศษ \
--เครือข่าย เจนกินส์ \
--เครือข่ายนามแฝง นักเทียบท่า \
--env DOCKER_TLS_CERTDIR = / ใบรับรอง \
--ปริมาณ เจนกินส์นักเทียบท่าใบรับรอง: / ใบรับรอง / ลูกค้า \
--ปริมาณ เจนกินส์ข้อมูล: / เคยเป็น / เจนกินส์_โฮม \
--เผยแพร่ 2376 : : 2376 \
นักเทียบท่า:จาก \
--ไดรเวอร์การจัดเก็บข้อมูล โอเวอร์เลย์2
คำสั่งก่อนหน้านี้เปิดตัวคอนเทนเนอร์ Docker-in-Docker (DinD) ชื่อ “jenkins-docker” พร้อมสิทธิ์การยกระดับและการกำหนดค่าเครือข่าย
แฟล็ก –rm ทำให้แน่ใจว่าคอนเทนเนอร์จะถูกลบออกโดยอัตโนมัติเมื่อหยุด คอนเทนเนอร์เชื่อมต่อกับเครือข่าย Jenkins โดยใช้นามแฝงเครือข่ายเป็น 'นักเทียบท่า' ตามที่สร้างไว้ในขั้นตอนก่อนหน้า
จากนั้นเราจะตั้งค่าตัวแปรสภาพแวดล้อมสำหรับใบรับรอง Docker TLS และต่อเชื่อมไดรฟ์ข้อมูลสำหรับการจัดเก็บใบรับรองและข้อมูล Jenkins
ในส่วนถัดไป เราจะเผยแพร่พอร์ต 2376 สำหรับการสื่อสาร Docker daemon
สุดท้ายนี้ เราระบุอิมเมจ docker:dind และกำหนดค่าไดรเวอร์หน่วยเก็บข้อมูลเพื่อใช้โอเวอร์เลย์2
เข้าถึง Jenkins Web UI
เมื่อเราเริ่มคอนเทนเนอร์ เราสามารถเข้าถึงอินสแตนซ์ Jenkins ได้จากเว็บเบราว์เซอร์โดยใช้ ที่อยู่.
หากคุณต้องการรันคอนเทนเนอร์ Jenkins แบบง่าย คุณสามารถใช้คำสั่งต่อไปนี้:
$ วิ่งนักเทียบท่า -d -พี 8080 : : 8080 -พี 50,000 : : 50,000 --ชื่อ เจนกินส์ \--เครือข่าย เจนกินส์ \
-ใน jenkins_home: / เคยเป็น / เจนกินส์_โฮม \
เจนกินส์ / เจนกินส์:lts
ซึ่งจะรันเซิร์ฟเวอร์ Jenkins โดยไม่จำเป็นต้องกำหนดค่าคุณสมบัติอื่นๆ เช่น วอลุ่ม พอร์ตการผูก และอื่นๆ
จากนั้นคุณจึงสามารถเข้าถึงอินสแตนซ์ Jenkins ได้ .
เมื่อ Jenkins พร้อมแล้ว เบราว์เซอร์ของคุณจะช่วยให้คุณกำหนดค่าเซิร์ฟเวอร์ Jenkins ด้วยคุณสมบัติต่างๆ ได้อย่างรวดเร็วตามที่คุณต้องการ
เมื่อตั้งค่าแล้ว คุณจะต้องปลดล็อก Jenkins โดยระบุรหัสผ่านผู้ดูแลระบบ คุณสามารถค้นหาได้โดยใช้คำสั่งต่อไปนี้:
$ นักเทียบท่าบันทึกเจนกินส์
คำสั่งจะแสดงบันทึกสำหรับคอนเทนเนอร์ซึ่งรวมถึงรหัสผ่านเจนกินส์
ขั้นตอนต่อไปคือการเลือกและติดตั้งปลั๊กอินที่คุณต้องการใช้สำหรับอินสแตนซ์ Jenkins ของคุณ หากคุณใช้ Jenkins เป็นครั้งแรก ให้เลือกปลั๊กอินที่แนะนำ
ซึ่งจะช่วยให้ Jenkins ดาวน์โหลดและติดตั้งปลั๊กอินเริ่มต้นทั้งหมดได้ ซึ่งจะช่วยให้คุณโต้ตอบกับไปป์ไลน์ของ Jenkins ได้อย่างง่ายดาย
บทสรุป
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีตั้งค่าเซิร์ฟเวอร์ Jenkins เป็นคอนเทนเนอร์โดยใช้ Docker และอิมเมจอย่างเป็นทางการของ Jenkins