问题:
我在docker容器中运行一个spring boot应用程序。每当重新启动时,都会在/ tmp下创建一个新的temp tomcat文件夹。 这就是它的外观
drwxr-XR-X。 4 tcuser tcuser 33 May 20 11:30 tomcat.8566439771014083739.8090
drwxr-XR-X。 4 tcuser tcuser 33 May 20 11:47 tomcat.9468780522054193904.8090
我的解决方法
我解决此问题的方法是编写启动脚本。脚本将删除/ tmp文件夹下的所有内容并启动spring boot应用程序。 Dockerfile调用脚本而不是直接调用java。像这样的东西
CMD [ "/src/main/docker/scripts/startup.sh" ]
启动脚本看起来像这样
#!/bin/bash
set -e
rm -rf /tmp/tomcat.* || true
SPRING_CONFIG_NAME=${SPRING_CONFIG_NAME:-application}
SPRING_CONFIG_LOCATION=${SPRING_CONFIG_LOCATION:-/var/springconfig/}
exec /usr/bin/java $JAVA_OPTS -jar /tomcat/webapps/app-server.jar --
spring.config.name=${SPRING_CONFIG_NAME} --
spring.config.location=${SPRING_CONFIG_LOCATION} "$@"
问题:
1)这种做法是对的吗?有没有其他方法可以解决这个问题?
2)如何在容器内复制startup.sh?我打算在/tomcat/bin/startup.sh
下复制它注意:我无法使用已安装的目录。这是一项要求。随着应用程序进入暂存,我希望人们只是运行启动脚本。
我对码头工作者的经验不多。任何提示都有帮助。谢谢。