หลีกเลี่ยงโซลูชัน
ฉันมีข้อกำหนดเกี่ยวกับการคัดลอก FOLDER ไปยังเซิร์ฟเวอร์ตามตัวแปร ENV ฉันเอาภาพเซิร์ฟเวอร์ที่ว่างเปล่า สร้างโครงสร้างโฟลเดอร์การปรับใช้ที่จำเป็นในโฟลเดอร์ภายในเครื่อง จากนั้นเพิ่มบรรทัดด้านล่างลงในDockerFileคัดลอกโฟลเดอร์ไปยังคอนเทนเนอร์ ฉันn บรรทัดสุดท้ายเพิ่มจุดเข้าเพื่อเรียกใช้งาน init file.sh ก่อนที่นักเทียบท่าจะเริ่มเซิร์ฟเวอร์
#below lines added to integrate testing framework
RUN mkdir /mnt/conf_folder
ADD install /mnt/conf_folder/install
ADD install_test /mnt/conf_folder/install_test
ADD custom-init.sh /usr/local/bin/custom-init.sh
ENTRYPOINT ["/usr/local/bin/custom-init.sh"]
จากนั้นสร้าง ไฟล์custom-init.shในโลคัลด้วยสคริปต์ด้านล่าง
#!/bin/bash
if [ "${BUILD_EVN}" = "TEST" ]; then
cp -avr /mnt/conf_folder/install_test/* /mnt/wso2das-3.1.0/
else
cp -avr /mnt/conf_folder/install/* /mnt/wso2das-3.1.0/
fi;
ในไฟล์Docker-composeด้านล่างบรรทัด
สภาพแวดล้อม: - BUILD_EVN = TEST
การเปลี่ยนแปลงเหล่านี้คัดลอกโฟลเดอร์ไปยังคอนเทนเนอร์ระหว่างการสร้างนักเทียบท่า เมื่อเราเรียกใช้งานDocker-compose ให้คัดลอกหรือปรับใช้โฟลเดอร์ที่จำเป็นจริงไปยังเซิร์ฟเวอร์ก่อนที่เซิร์ฟเวอร์จะเริ่มทำงาน