เซิร์ฟเวอร์การรวมและการส่งมอบ Jenkins แบบต่อเนื่องมีอยู่บน Docker Hub
นี่คือเซิร์ฟเวอร์ Jenkins ที่ทำงานได้อย่างสมบูรณ์ https://jenkins.io/.
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk17
หมายเหตุ: อ่านส่วน การเชื่อมต่อเอเจนต์ ด้านล่างสำหรับบทบาทของการแมปพอร์ต 50000
หมายเหตุ: อ่านส่วน การกำหนดค่า DNS ในกรณีที่คุณเห็นข้อความ "อินสแตนซ์ Jenkins นี้ดูเหมือนจะออฟไลน์"
สิ่งนี้จะจัดเก็บพื้นที่ทำงานใน /var/jenkins_home
ข้อมูล Jenkins ทั้งหมดอยู่ในนั้น รวมถึงปลั๊กอินและการกำหนดค่า คุณอาจต้องการสร้างวอลุ่มที่ชัดเจนเพื่อให้คุณสามารถจัดการและแนบไปกับคอนเทนเนอร์อื่นเพื่ออัปเกรด:
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk17
สิ่งนี้จะสร้างโวลุ่มนักเทียบท่า 'jenkins_home' บนเครื่องโฮสต์โดยอัตโนมัติ ไดรฟ์ข้อมูลนักเทียบท่าจะรักษาเนื้อหาไว้แม้ว่าคอนเทนเนอร์จะหยุดทำงาน เริ่มหรือลบก็ตาม
หมายเหตุ: หลีกเลี่ยงการใช้การผูกเมานต์จากโฟลเดอร์บนเครื่องโฮสต์ใน /var/jenkins_home
เนื่องจากอาจทำให้เกิดปัญหาการอนุญาตไฟล์ (ผู้ใช้ที่ใช้ภายในคอนเทนเนอร์อาจไม่มีสิทธิ์ในโฟลเดอร์บนเครื่องโฮสต์) หากคุณต้องการผูก mount jenkins_home จริงๆ ตรวจสอบให้แน่ใจว่าผู้ใช้ jenkins สามารถเข้าถึงไดเร็กทอรีบนโฮสต์ภายในคอนเทนเนอร์ (ผู้ใช้ jenkins - uid 1000) หรือใช้พารามิเตอร์ -u some_other_user
กับ docker run
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk17
สิ่งนี้จะเรียกใช้ Jenkins ในโหมดเดี่ยวพร้อมการส่งต่อพอร์ตและเพิ่มระดับเสียง คุณสามารถเข้าถึงบันทึกด้วยคำสั่ง 'บันทึกนักเทียบท่า CONTAINER_ID' เพื่อตรวจสอบโทเค็นการเข้าสู่ระบบครั้งแรก ID ของคอนเทนเนอร์จะถูกส่งกลับจากเอาต์พุตของคำสั่งด้านบน
หากคุณผูกเมานต์ในโวลุ่ม คุณสามารถสำรองข้อมูลไดเร็กทอรีนั้น (ซึ่งก็คือ jenkins_home) ได้ตลอดเวลา
ไม่แนะนำให้ใช้การผูกเมานต์เนื่องจากอาจทำให้เกิดปัญหาในการอนุญาตได้ ปฏิบัติต่อไดเร็กทอรี jenkins_home เหมือนกับที่คุณทำกับฐานข้อมูล - ใน Docker โดยทั่วไปคุณจะใส่ฐานข้อมูลไว้ในโวลุ่ม
หากโวลุ่มของคุณอยู่ในคอนเทนเนอร์ คุณสามารถใช้คำสั่ง docker cp $ID:/var/jenkins_home
เพื่อแยกข้อมูล หรือตัวเลือกอื่นๆ เพื่อค้นหาว่าข้อมูลโวลุ่มอยู่ที่ใด โปรดทราบว่าบางลิงก์ในบางระบบปฏิบัติการอาจถูกแปลงเป็นสำเนา (ซึ่งอาจทำให้เจนกินส์สับสนกับลิงก์ LastStableBuild เป็นต้น)
สำหรับข้อมูลเพิ่มเติม โปรดดูส่วนเอกสาร Docker ในการใช้โวลุ่ม
คุณสามารถกำหนดจำนวนผู้ดำเนินการบนโหนดในตัวของ Jenkins ได้โดยใช้สคริปต์ Groovy ตามค่าเริ่มต้นจะถูกตั้งค่าเป็น 2 ตัวดำเนินการ แต่คุณสามารถขยายรูปภาพและเปลี่ยนเป็นจำนวนตัวดำเนินการที่คุณต้องการได้ (แนะนำ 0 ตัวดำเนินการบนโหนดในตัว):
executors.groovy
import jenkins.model.* Jenkins.instance.setNumExecutors(0) // Recommended to not run builds on the built-in node
และ Dockerfile
FROM jenkins/jenkins:lts COPY --chown=jenkins:jenkins executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy
คุณสามารถรันบิลด์บนคอนโทรลเลอร์ได้ทันทีเมื่อแกะกล่อง โปรเจ็กต์ Jenkins แนะนำว่าไม่ควรเปิดใช้งานตัวดำเนินการบนคอนโทรลเลอร์
ในการเชื่อมต่อตัวแทน ผ่านการเชื่อมต่อ TCP ขาเข้า ให้ แมปพอร์ต: -p 50000:50000
พอร์ตนั้นจะถูกใช้เมื่อคุณเชื่อมต่อตัวแทนเข้ากับคอนโทรลเลอร์
หากคุณใช้เฉพาะเอเจนต์บิลด์ SSH (ขาออก) เท่านั้น ไม่จำเป็นต้องใช้พอร์ตนี้ เนื่องจากมีการสร้างการเชื่อมต่อจากคอนโทรลเลอร์ หากคุณเชื่อมต่อตัวแทนโดยใช้เว็บซ็อกเก็ต (ตั้งแต่ Jenkins 2.217) พอร์ตตัวแทน TCP จะไม่ถูกใช้เช่นกัน
คุณอาจต้องปรับแต่ง JVM ที่ใช้ Jenkins ซึ่งโดยทั่วไปจะปรับคุณสมบัติของระบบหรือปรับแต่งการตั้งค่าหน่วยความจำฮีป ใช้ตัวแปรสภาพแวดล้อม JAVA_OPTS
หรือ JENKINS_JAVA_OPTS
เพื่อจุดประสงค์นี้:
docker run --name myjenkins -p 8080:8080 -p 50000:50000 --restart=on-failure --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com jenkins/jenkins:lts-jdk17
ตัวเลือก JVM โดยเฉพาะสำหรับคอนโทรลเลอร์ Jenkins ควรตั้งค่าผ่าน JENKINS_JAVA_OPTS
เนื่องจากเครื่องมืออื่นๆ อาจตอบสนองต่อตัวแปรสภาพแวดล้อม JAVA_OPTS
เช่นกัน
การบันทึก Jenkins สามารถกำหนดค่าผ่านไฟล์คุณสมบัติและคุณสมบัติ java.util.logging.config.file
Java ตัวอย่างเช่น:
mkdir data cat > data/log.properties <<EOF handlers=java.util.logging.ConsoleHandler jenkins.level=FINEST java.util.logging.ConsoleHandler.level=FINEST EOF docker run --name myjenkins -p 8080:8080 -p 50000:50000 --restart=on-failure --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties" -v `pwd`/data:/var/jenkins_home jenkins/jenkins:lts-jdk17
หากคุณต้องการติดตั้ง Jenkins หลัง Reverse Proxy ด้วยคำนำหน้า เช่น mysite.com/jenkins คุณต้องเพิ่มตัวแปรสภาพแวดล้อม JENKINS_OPTS="--prefix=/jenkins"
จากนั้นทำตามขั้นตอนด้านล่างเพื่อกำหนดค่า Reverse Proxy ของคุณ ซึ่งจะขึ้นอยู่กับว่าคุณมี Apache หรือ Nginx:
อาปาเช่
งินซ์
หากข้อความ "อินสแตนซ์ Jenkins นี้ดูเหมือนจะออฟไลน์" ปรากฏขึ้นเมื่อเริ่มต้นระบบครั้งแรก และบันทึกคอนเทนเนอร์จะแสดงบรรทัด เช่น java.net.UnknownHostException: updates.jenkins.io
คอนเทนเนอร์ของคุณอาจมีปัญหาในการแก้ไขชื่อ DNS
หากต้องการแก้ไขปัญหานี้ ให้เริ่มคอนเทนเนอร์ที่ระบุเซิร์ฟเวอร์ DNS (เช่น 1.1.1.1 ของ Cloudflare หรือ 8.8.8.8 ของ Google หรือเซิร์ฟเวอร์ DNS อื่น ๆ ):
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure --dns 1.1.1.1 --dns 8.8.8.8 jenkins/jenkins:lts-jdk17
อาร์กิวเมนต์ที่คุณส่งไปยังนักเทียบท่าที่รันอิมเมจ Jenkins จะถูกส่งผ่านไปยัง jenkins launcher ดังนั้น ตัวอย่างเช่น คุณสามารถเรียกใช้:
docker run jenkins/jenkins:lts-jdk17 --version
ซึ่งจะแสดงเวอร์ชันของ Jenkins เช่นเดียวกับเมื่อคุณเรียกใช้ Jenkins จากสงครามที่ปฏิบัติการได้
คุณยังสามารถกำหนดอาร์กิวเมนต์ของ Jenkins ผ่าน JENKINS_OPTS
ได้ สิ่งนี้มีประโยชน์สำหรับการปรับแต่งอาร์กิวเมนต์ให้กับตัวเรียกใช้งาน jenkins ในอิมเมจ Jenkins ที่ได้รับ ตัวอย่าง Dockerfile ต่อไปนี้ใช้ตัวเลือกนี้เพื่อบังคับให้ใช้ HTTPS โดยมีใบรับรองรวมอยู่ในรูปภาพ
FROM jenkins/jenkins:lts-jdk17 COPY --chown=jenkins:jenkins certificate.pfx /var/lib/jenkins/certificate.pfx COPY --chown=jenkins:jenkins https.key /var/lib/jenkins/pk ENV JENKINS_OPTS="--httpPort=-1 --httpsPort=8083 --httpsKeyStore=/var/lib/jenkins/certificate.pfx --httpsKeyStorePassword=Password12" EXPOSE 8083
คุณยังสามารถเปลี่ยนพอร์ตตัวแทนเริ่มต้นสำหรับ Jenkins ได้โดยกำหนด JENKINS_SLAVE_AGENT_PORT
ใน Dockerfile ตัวอย่าง
FROM jenkins/jenkins:lts-jdk17 ENV JENKINS_SLAVE_AGENT_PORT=50001
หรือเป็นพารามิเตอร์สำหรับนักเทียบท่า
docker run --name myjenkins -p 8080:8080 -p 50001:50001 --restart=on-failure --env JENKINS_SLAVE_AGENT_PORT=50001 jenkins/jenkins:lts-jdk17
หมายเหตุ : ตัวแปรสภาพแวดล้อมนี้จะถูกใช้เพื่อตั้งค่าคุณสมบัติระบบ jenkins.model.Jenkins.slaveAgentPort
หากคุณสมบัตินี้ถูกตั้งค่าไว้ใน JAVA_OPTS หรือ JENKINS_JAVA_OPTS แล้ว ค่าของ
JENKINS_SLAVE_AGENT_PORT
จะถูกละเว้น
คุณสามารถรันคอนเทนเนอร์ของคุณในฐานะรูท และติดตั้งผ่าน apt-get ติดตั้งเป็นส่วนหนึ่งของขั้นตอนการสร้างผ่านตัวติดตั้งเครื่องมือ jenkins หรือคุณสามารถสร้าง Dockerfile ของคุณเองเพื่อปรับแต่งได้ เช่น:
FROM jenkins/jenkins:lts-jdk17 # if we want to install via apt USER root RUN apt-get update && apt-get install -y ruby make more-thing-here # drop back to the regular jenkins user - good practice USER jenkins
ในอิมเมจที่ได้รับดังกล่าว คุณสามารถปรับแต่งอินสแตนซ์ jenkins ของคุณด้วยฮุคสคริปต์หรือปลั๊กอินเพิ่มเติมได้ เพื่อจุดประสงค์นี้ ให้ใช้ /usr/share/jenkins/ref
เป็นสถานที่ในการกำหนดเนื้อหา JENKINS_HOME เริ่มต้นที่คุณต้องการให้การติดตั้งเป้าหมายมีลักษณะดังนี้:
FROM jenkins/jenkins:lts-jdk17 COPY --chown=jenkins:jenkins custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
คุณสามารถพึ่งพา CLI ของตัวจัดการปลั๊กอินเพื่อส่งชุดปลั๊กอินเพื่อดาวน์โหลดโดยอ้างอิงกัน เครื่องมือนี้จะทำการดาวน์โหลดจากศูนย์อัปเดต และจำเป็นต้องมีการเข้าถึงอินเทอร์เน็ตสำหรับศูนย์อัปเดตเริ่มต้น
ในระหว่างการดาวน์โหลด CLI จะใช้ศูนย์อัปเดตที่กำหนดโดยตัวแปรสภาพแวดล้อมต่อไปนี้:
JENKINS_UC
- ศูนย์อัปเดตหลัก ศูนย์อัปเดตนี้อาจเสนอเวอร์ชันปลั๊กอินโดยขึ้นอยู่กับเวอร์ชัน Jenkins LTS Core ค่าเริ่มต้น: https://updates.jenkins.io
JENKINS_UC_EXPERIMENTAL
- ศูนย์อัปเดตการทดลอง ศูนย์นี้มีปลั๊กอินเวอร์ชันอัลฟ่าและเบต้า ค่าเริ่มต้น: https://updates.jenkins.io/experimental
JENKINS_INCREMENTALS_REPO_MIRROR
- กำหนดมิเรอร์ Maven เพื่อใช้ดาวน์โหลดปลั๊กอินจาก repo ส่วนเพิ่ม ค่าเริ่มต้น: https://repo.jenkins-ci.org/increationals
JENKINS_UC_DOWNLOAD
- ดาวน์โหลด URL ของ Update Center ค่าเริ่มต้น: $JENKINS_UC/download
JENKINS_PLUGIN_INFO
- ตำแหน่งของข้อมูลปลั๊กอิน ค่าเริ่มต้น: https://updates.jenkins.io/current/plugin-versions.json
คุณสามารถแทนที่ตัวแปรสภาพแวดล้อมในรูปภาพได้
❗ โปรดทราบว่าการเปลี่ยนตัวแปร Update Center จะไม่ เปลี่ยน Update Center ที่รันไทม์ของ Jenkins ใช้ แต่จะเกี่ยวข้องกับ CLI ของตัวจัดการปลั๊กอินเท่านั้น
การติดตั้งปลั๊กอินแบบกำหนดเองที่สร้างไว้ล่วงหน้าสามารถทำได้โดยการคัดลอกไฟล์ปลั๊กอิน HPI ลงใน /usr/share/jenkins/ref/plugins/
ภายใน Dockerfile
:
COPY --chown=jenkins:jenkins path/to/custom.hpi /usr/share/jenkins/ref/plugins/
คุณสามารถเรียกใช้ CLI ด้วยตนเองใน Dockerfile:
จาก jenkins/jenkins:lts-jdk17RUN jenkins-plugin-cli --plugins ไปป์ไลน์-model-definition github-branch-source:1.8
นอกจากนี้ ยังสามารถส่งไฟล์ที่มีชุดปลั๊กอินนี้ (มีหรือไม่มีการขึ้นบรรทัดใหม่)
จากเจนกินส์/เจนกินส์:lts-jdk17COPY --chown=เจนกินส์:เจนกินส์plugins.txt /usr/share/jenkins/ref/plugins.txtRUN jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.txt
เมื่อคอนเทนเนอร์เจนกินส์เริ่มทำงาน ระบบจะตรวจสอบว่า JENKINS_HOME
มีเนื้อหาอ้างอิงนี้ และคัดลอกเนื้อหาเหล่านั้นไว้หากจำเป็น มันจะไม่แทนที่ไฟล์ดังกล่าว ดังนั้นหากคุณอัปเกรดปลั๊กอินบางตัวจาก UI ปลั๊กอินเหล่านั้นจะไม่ถูกเปลี่ยนกลับในการเริ่มครั้งถัดไป
ในกรณีที่คุณ ต้องการ แทนที่ ให้เพิ่ม '.override' ต่อท้ายชื่อไฟล์อ้างอิง เช่น ไฟล์ชื่อ /usr/share/jenkins/ref/config.xml.override
จะเขียนทับไฟล์ config.xml
ที่มีอยู่ใน JENKINS_HOME
ดูเพิ่มเติมที่ เจนกินส์-24986
นี่คือตัวอย่างในการรับรายการปลั๊กอินจากเซิร์ฟเวอร์ที่มีอยู่:
JENKINS_HOST=username:[email protected]:port curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([w-]+).*?<version>([^<]+)()(</w+>)+/1 2n/g'|sed 's/ /:/'
ตัวอย่างผลลัพธ์:
cucumber-testresult-plugin:0.8.2 pam-auth:1.1 matrix-project:1.4.1 script-security:1.13 ...
สำหรับรูปภาพที่ได้มาจาก 2.x คุณอาจต้องการเช่นกัน
RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state
เพื่อระบุว่าการติดตั้ง Jenkins นี้ได้รับการกำหนดค่าอย่างสมบูรณ์ มิฉะนั้นแบนเนอร์จะปรากฏขึ้นเพื่อแจ้งให้ผู้ใช้ติดตั้งปลั๊กอินเพิ่มเติมซึ่งอาจไม่เหมาะสม
หากต้องการเปิดใช้งานบันทึกการเข้าถึงของผู้ใช้ Jenkins จากโฮมไดเร็กทอรีของ Jenkins ภายในคอนเทนเนอร์นักเทียบท่า ให้ตั้งค่าตัวแปรสภาพแวดล้อม JENKINS_OPTS
เป็น --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/jenkins_home/logs/access_log
รูปแบบการตั้งชื่อสำหรับแท็กบน Docker Hub เป็นไปตามรูปแบบ <repository_name>:<tag>
โดยที่ชื่อที่เก็บคือ jenkins/jenkins และตำแหน่งที่แท็กระบุเวอร์ชันรูปภาพ ในกรณีของ LTS และเวอร์ชันล่าสุด แท็กจะเป็น lts
และ latest
ตามลำดับ
คุณสามารถใช้แท็กเหล่านี้เพื่อดึงอิมเมจ Jenkins ที่เกี่ยวข้องจาก Docker Hub และรันบนระบบของคุณ ตัวอย่างเช่น หากต้องการดึงอิมเมจ Jenkins เวอร์ชัน LTS ให้ใช้คำสั่งนี้: docker pull jenkins/jenkins:lts
หากต้องการใช้ Docker Compose กับ Jenkins คุณสามารถกำหนดไฟล์ docker-compose.yml รวมถึงอินสแตนซ์ Jenkins และบริการอื่นๆ ที่ต้องพึ่งพาได้ ตัวอย่างเช่น ไฟล์ docker-compose.yml ต่อไปนี้กำหนดตัวควบคุม Jenkins และเอเจนต์ Jenkins SSH:
บริการ: เจนกินส์: ภาพ: เจนกินส์/เจนกินส์: ltsports: - เล่ม "8080:8080": - jenkins_home:/var/jenkins_home ssh-agent: ภาพ: เจนกินส์ / ssh-agentvolumes: jenkins_home:
ไฟล์ docker-compose.yml
นี้สร้างคอนเทนเนอร์ 2 คอนเทนเนอร์ คอนเทนเนอร์หนึ่งสำหรับ Jenkins และอีกคอนเทนเนอร์สำหรับ Jenkins SSH agent
คอนเทนเนอร์ Jenkins อิงตามอิมเมจ jenkins/jenkins:lts
และเปิดเผยเว็บอินเทอร์เฟซของ Jenkins บนพอร์ต 8080 ไดรฟ์ข้อมูล jenkins_home
เป็นไดรฟ์ข้อมูลที่มีชื่อซึ่งสร้างและจัดการโดย Docker
ติดตั้งอยู่ที่ /var/jenkins_home
ในคอนเทนเนอร์ Jenkins และจะคงการกำหนดค่าและข้อมูลของ Jenkins ไว้
คอนเทนเนอร์ ssh-agent อิงตามอิมเมจ jenkins/ssh-agent
และรันเซิร์ฟเวอร์ SSH เพื่อดำเนินการ Jenkins SSH Build Agent
หากต้องการเริ่มต้นอินสแตนซ์ Jenkins และบริการอื่นๆ ที่กำหนดไว้ในไฟล์ docker-compose.yml
ให้เรียกใช้ docker compose up -d
วิธีนี้จะดึงอิมเมจที่จำเป็นจาก Docker Hub หากยังไม่มีอยู่ในระบบของคุณ และเริ่มบริการในเบื้องหลัง
จากนั้น คุณสามารถเข้าถึงเว็บอินเทอร์เฟซของ Jenkins บน http://localhost:8080
บนระบบโฮสต์ของคุณเพื่อกำหนดค่าและจัดการอินสแตนซ์ Jenkins ของคุณ (โดยที่ localhost
ชี้ไปยังพอร์ตที่เผยแพร่โดย Docker Engine ของคุณ)
หมายเหตุ: อ่านส่วน การกำหนดค่า DNS ในกรณีที่คุณเห็นข้อความ "อินสแตนซ์ Jenkins นี้ดูเหมือนจะออฟไลน์" ในกรณีนั้นให้เพิ่มการกำหนดค่า DNS ให้กับ yaml:
บริการ: เจนกินส์:# ... configdns อื่น ๆ: - 1.1.1.1 - 8.8.8.8# ... การกำหนดค่าอื่น ๆ
เครื่องมือจัดการการติดตั้งปลั๊กอินรองรับการอัปเดตไฟล์ปลั๊กอินสำหรับคุณ
คำสั่งตัวอย่าง:
JENKINS_IMAGE=เจนกินส์/เจนกินส์:lts-jdk17 นักเทียบท่าวิ่ง -it ${JENKINS_IMAGE} bash -c "stty -onlcr && jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.txt --available-updates --output txt" > Plugins2.txt MV Plugins2.txt Plugins.txt
ข้อมูลทั้งหมดที่จำเป็นอยู่ในไดเร็กทอรี /var/jenkins_home - ขึ้นอยู่กับวิธีที่คุณจัดการ - ขึ้นอยู่กับวิธีที่คุณอัพเกรด โดยทั่วไป - คุณสามารถคัดลอกมันออกมา - จากนั้น "นักเทียบท่าดึง" รูปภาพอีกครั้ง - และคุณจะมี LTS ล่าสุด - จากนั้นคุณสามารถเริ่มต้นด้วย -v ชี้ไปที่ข้อมูลนั้น (/var/jenkins_home) และทุกอย่างจะเป็นตามที่คุณต้องการ ทิ้งมันไว้
เช่นเคย โปรดตรวจสอบให้แน่ใจว่าคุณรู้วิธีขับนักเทียบท่า โดยเฉพาะการจัดการระดับเสียง!
หากคุณเมานต์โฮมไดเร็กตอรี่ของ Jenkins ไปยังโวลุ่มที่มีชื่อ Docker การอัพเกรดจะประกอบด้วย docker pull
และไม่มีอะไรเพิ่มเติม
เราขอแนะนำให้ใช้ docker compose
โดยเฉพาะอย่างยิ่งในกรณีที่ผู้ใช้ใช้งานคอนเทนเนอร์ nginx/apache แบบขนานเป็นพร็อกซีย้อนกลับสำหรับคอนเทนเนอร์ Jenkins
ตามค่าเริ่มต้น ปลั๊กอินจะได้รับการอัปเกรดหากไม่ได้รับการอัปเกรดด้วยตนเอง และหากเวอร์ชันจากอิมเมจนักเทียบท่านั้นใหม่กว่าเวอร์ชันในคอนเทนเนอร์ เวอร์ชันที่ติดตั้งโดยอิมเมจนักเทียบท่าจะถูกติดตามผ่านไฟล์มาร์กเกอร์
หากต้องการบังคับให้อัปเกรดปลั๊กอินที่ได้รับการอัปเกรดด้วยตนเอง ให้รันอิมเมจนักเทียบท่าด้วย -e PLUGINS_FORCE_UPGRADE=true
ลักษณะการทำงานเริ่มต้นเมื่ออัปเกรดจากอิมเมจนักเทียบท่าที่ไม่ได้เขียนไฟล์มาร์กเกอร์คือการปล่อยให้ปลั๊กอินที่มีอยู่ยังคงอยู่ หากคุณต้องการอัปเกรดปลั๊กอินที่มีอยู่โดยไม่มีเครื่องหมายคุณสามารถเรียกใช้อิมเมจนักเทียบท่าด้วย -e TRY_UPGRADE_IF_NO_MARKER=true
จากนั้นปลั๊กอินจะได้รับการอัพเกรดหากเวอร์ชันที่อิมเมจนักเทียบท่าให้มานั้นใหม่กว่า
หากคุณต้องการร่วมแก้ไขพื้นที่เก็บข้อมูลนี้ โปรดดูเอกสารประกอบเฉพาะ
สำหรับข้อมูลที่เกี่ยวข้องกับความปลอดภัยของอิมเมจ Docker นี้ โปรดดูเอกสารประกอบเฉพาะ
เราอยู่บน Gitter https://gitter.im/jenkinsci/docker