Jenkins คอนเทนเนอร์: ส่งการตั้งค่า proxy ของ Maven ด้วยไฟล์ลับ
ผูกไฟล์ลับของ Jenkins และส่งพาธที่มองเห็นได้ในคอนเทนเนอร์ไปยัง mvn -s สำหรับการกำหนดค่า proxy ของ build
proxy ของที่เก็บ Maven อยู่ใน settings.xml ของมัน เมื่อ build ของ Jenkins ทำงานอยู่ในคอนเทนเนอร์ Maven แล้ว ให้ส่งไฟล์นั้นให้กระบวนการ Maven ที่ทำงานอยู่ที่นั่น
เก็บ settings.xml ทั้งหมดที่ตั้งใจไว้เป็นข้อมูลรับรอง Jenkins Secret file ชื่อ maven-proxy-settings ภายในขั้นตอนของสเตจคอนเทนเนอร์ที่มีอยู่:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
การผูกให้พาธไฟล์ชั่วคราว สตริง Groovy ที่ใช้เครื่องหมายคำพูดเดี่ยวปล่อยให้ shell ขยายตัวแปร และเครื่องหมายคำพูดคู่ของ shell รักษาพาธให้เป็นอาร์กิวเมนต์เดียว ตัวเลือก -s ของ Maven เลือกไฟล์นั้นเป็นการตั้งค่าผู้ใช้ ส่วน -B เลือกโหมดแบทช์
ไฟล์ข้อมูลรับรองสามารถมีโฮสต์ พอร์ต การรับรองความถูกต้อง และ nonProxyHosts ของ proxy ของ build ในส่วน proxies พร้อมกับการตั้งค่าผู้ใช้อื่นที่จำเป็น รายการข้าม proxy ใน Maven ใช้เส้นแนวตั้ง ระหว่างรูปแบบโฮสต์
ไฟล์ต้องมีอยู่ที่ที่ Maven ทำงาน
กับ Docker Pipeline เอเจนต์และคอนเทนเนอร์ต้องมีระบบไฟล์ที่เมานต์ไว้ซึ่งเข้ากันได้ เพื่อให้พาธที่ผูกไว้อ่านได้ภายในคอนเทนเนอร์ที่รันอยู่ docker run ที่เปิดด้วยมือต้องมีการเมานต์ไฟล์อย่างชัดเจน ควรเป็นแบบอ่านอย่างเดียว และ Maven ต้องได้รับพาธฝั่งคอนเทนเนอร์ การส่งพาธฝั่งโฮสต์เป็นตัวแปรสภาพแวดล้อมอย่างเดียวไม่ทำให้ไฟล์ใช้งานได้
เก็บการเปลี่ยนไดเรกทอรีทำงานใด ๆ ไว้ในบล็อกผูกข้อมูลรับรอง เพื่อไม่ให้ไฟล์ลับไปอยู่ในเวิร์กสเปซของไดเรกทอรีย่อยที่เรียกดูได้ อย่าพิมพ์ไฟล์ลงในบันทึกของ build และอย่าคัดลอกลงในอิมเมจถาวร
สิ่งนี้เลือกการตั้งค่าผู้ใช้ การตั้งค่าส่วนกลางของ Maven ก็ยังมีส่วนร่วมได้ ดังนั้นตรวจสอบทั้งสองอย่างหากมิเรอร์ที่สืบทอดมาหรือการกำหนดค่าอื่นยังส่งผลต่อการแก้ไข