folosim google cloud run și am montat jurnalele noastre de cod într-un depozit de fișiere folosind NFS, problema mea este că dacă jurnalul de cod Tomcat este șters accidental, jurnalele din depozit de fișiere nu sunt generate din nou automat.
Fișierul meu Docker
DE LA tomcat:8.5.77-jre8-openjdk-slim-buster
RUN apt-get update -y && apt-get install -y
nfs-comun
netbase
&& apt-a face curat
RUN mkdir /usr/local/tomcat/webapps/router
ADĂUGA . /usr/local/tomcat/webapps/router
Setați directorul de montare alternativ
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
Utilizați tini pentru a gestiona procesele zombi și redirecționarea semnalelor ENV TINI_VERSION v0.19.0
ADĂUGA https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini
/tini RUN chmod +x /tini ENTRYPOINT ["/tini", "--"]
Transmiteți scriptul de pornire ca argumente lui tini
CMD ["/usr/local/tomcat/webapps/router/run.sh"]
ENV PORT=8080
EXPUNERE 8080 EXPUNERE 2049 EXPUNERE 111
Fișierul meu script
#!/bin/bash
set -eo pipefail
Creați un director de montare sau un punct de montare pentru serviciul container.
chmod -R 777 /usr/local/tomcat/webapps/router/logs
mount --verbose -t nfs -o vers=3 -o nolock 10.67.157.122:/filestore_vol1/test/testing/logss
/usr/local/tomcat/webapps/router/logs
echo „Montarea finalizată”.
arată procesul de montare
showmount -e 10.67.157.x
verificați care director a fost montat în care director al depozitului de fișiere.
df -h
creați un fișier în directorul de montare sau punctul de montare la care să fie afișat
atingeți /$MNT_DIR/dragon.js
chmod 777 /$MNT_DIR/dragon.js
atingeți /usr/local/tomcat/webapps/router/logs/newdragon.js
/usr/local/tomcat/bin/catalina.sh rulați
Ieșiți imediat când unul dintre procesele de fundal se încheie.
așteptați -n