อัปเดตคอนเทนเนอร์ Docker โดยอัตโนมัติโดยใช้ webhooks


10

ฉันได้สร้าง repo Github และ repo Docker ทั้งสองทำงานร่วมกันได้ดีมาก: เมื่อฉันกด Dockerfile เวอร์ชันใหม่ไปที่ Github รูปภาพใหม่จะถูกสร้างขึ้นภายใน repo Docker โดยอัตโนมัติ

ตอนนี้ฉันต้องการให้ภาชนะที่ใช้งานของฉันอัปเดตโดยอัตโนมัติเมื่อสร้างอิมเมจพื้นฐาน (อีกครั้ง)

ฉันจะทำให้สำเร็จโดยใช้ repos webhooks ได้อย่างไร


1
หากมีวิธี "ง่าย" (ง่ายเหมือนวิธีนี้) เพื่อให้ได้สิ่งเดียวกันโดยไม่ต้องใช้ webhooks ฉันก็สนใจเช่นกัน :)
PJ Bergeron

คำตอบ:


3

ทีมงาน Century Link Labs ได้พัฒนาเครื่องมือโอเพนซอร์สใหม่ 2 ตัวที่สามารถใช้เว็บ hooks เพื่ออัปเดตคอนเทนเนอร์ที่รันอยู่

แอพแรกของพวกเขาคือZodiacที่ใช้รูปแบบการปรับใช้ "พุช" มันเป็นเครื่องมือที่มีน้ำหนักเบาที่สร้างขึ้นบนDocker Composeเพื่อให้ง่ายต่อการติดตั้งและย้อนกลับของแอปพลิเคชันที่เชื่อมต่อ มันเก็บประวัติการปรับใช้ทั้งหมดที่อนุญาตให้คุณย้อนกลับไปสู่การปรับใช้ก่อนหน้า

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

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

ฉันไม่มีส่วนเกี่ยวข้องกับ Century Link Labs

แอปอื่นง่ายคุณอาจต้องการที่จะมีลักษณะที่เป็นหางดึง


คุณอาจต้องการดูการสนทนานี้เกี่ยวกับการใช้การปรับปรุงความปลอดภัยจากภาพพื้นฐาน
Tony O'Hagan

ลิงก์เหล่านี้บางส่วนขาดไป แต่โครงการ GitHub ยังคงอยู่
Tony O'Hagan

0

นอกจากนี้ยังมีตัวดึงรูปภาพ - ตัวดึงล่าสุดอีกหนึ่งตัว

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


-1

ฉันพบสิ่งนี้ แต่ฉันยังไม่ได้ลอง:

https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcfนี่เป็นบทความเกี่ยวกับการใช้ webhook เพื่อปรับใช้คอนเทนเนอร์ด้วยฮับนักเทียบท่า

โดยทั่วไปจะบอกว่าคุณสามารถใช้เครื่องมือชนิดหนึ่ง (ตรวจสอบลิงค์ด้านล่าง) เพื่อจัดการ webhook บน "เครื่องมือ" นักเทียบท่าของคุณ https://github.com/iaincollins/docker-deploy-webhook


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

@MichaelHampton ฉันคิดว่าคำตอบของฉันจะเป็นประโยชน์ฉันเพิ่มคำอธิบายเพิ่มเติม
emj365
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.