每当重新启动docker容器时,都会在/ tmp下创建一个新的temp tomcat文件夹

时间:2018-06-06 16:35:21

标签: docker tomcat docker-container startupscript

问题:

我在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

下复制它

注意:我无法使用已安装的目录。这是一项要求。随着应用程序进入暂存,我希望人们只是运行启动脚本。

我对码头工作者的经验不多。任何提示都有帮助。谢谢。

0 个答案:

没有答案