เรากำลังใช้ Google Cloud Run และติดตั้งบันทึกรหัสของเราไปยังที่เก็บไฟล์โดยใช้ NFS ปัญหาของฉันคือหากบันทึกรหัส Tomcat ถูกลบโดยไม่ตั้งใจ บันทึกจากที่เก็บไฟล์จะไม่ถูกสร้างอีกโดยอัตโนมัติ
ไฟล์ Docker ของฉัน
จากแมวตัวผู้:8.5.77-jre8-openjdk-slim-buster
รัน apt-get update -y && apt-get install -y
nfs-ทั่วไป
เน็ตเบส
&& ฉลาดรับสะอาด
RUN mkdir /usr/local/tomcat/webapps/router
เพิ่ม . /usr/local/tomcat/webapps/router
ตั้งค่าไดเร็กทอรีเมานต์ทางเลือก
ENV MNT_DIR /usr/local/tomcat/webapps/router/logs
WORKDIR /usr/local/tomcat/webapps/router
RUN chmod +x /usr/local/tomcat/webapps/router/run.sh
ใช้ Tini เพื่อจัดการกระบวนการซอมบี้และการส่งต่อสัญญาณ ENV TINI_VERSION v0.19.0
เพิ่ม https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini
/tini RUN chmod +x /tini ENTRYPOINT ["/tini", "--"]
ส่งสคริปต์เริ่มต้นเป็นอาร์กิวเมนต์ไปยัง tini
CMD ["/usr/local/tomcat/webapps/router/run.sh"]
พอร์ต ENV=8080
เปิดเผย 8080 เปิดเผย 2049 เปิดเผย 111
ไฟล์สคริปต์ของฉัน
#!/bin/bash
ตั้ง -eo ไปป์ไลน์
สร้างไดเร็กทอรีการต่อเชื่อมหรือจุดต่อเชื่อมสำหรับบริการคอนเทนเนอร์
chmod -R 777 /usr/local/tomcat/webapps/router/logs
เมานต์ --verbose -t nfs -o vers=3 -o nolock 10.67.157.122:/filestore_vol1/test/testing/logss
/usr/local/tomcat/webapps/router/logs
echo "การติดตั้งเสร็จสิ้น"
แสดงขั้นตอนการเมานต์
showmount -e 10.67.157.x
ตรวจสอบว่า dir ใดติดตั้งไว้ที่ dir ของ filestore
df -h
สร้างไฟล์ที่ไดเร็กทอรีเมานต์หรือจุดเมานท์ที่จะแสดง
แตะ /$MNT_DIR/dragon.js
chmod 777 /$MNT_DIR/dragon.js
แตะ /usr/local/tomcat/webapps/router/logs/newdragon.js
/usr/local/tomcat/bin/catalina.sh เรียกใช้
ออกทันทีเมื่อกระบวนการเบื้องหลังอย่างใดอย่างหนึ่งสิ้นสุดลง
รอ -n