【问题标题】:Tomcat/Docker via Intellij says... "Cannot find /Users/blah/yadda/tomcat/bin/setclasspath.sh This file is needed to run this program"通过 Intellij 的 Tomcat/Docker 说...“找不到 /Users/blah/yadda/tomcat/bin/setclasspath.sh 这个文件是运行这个程序所必需的”
【发布时间】:2021-08-09 23:07:34
【问题描述】:

尝试在本地 Mac 上的 Docker 容器中运行 Tomcat。已经在 Intellij 的 Container Config 对话框中设置了 Env Variables,并且确定有足够的容器在启动时似乎正在寻找文件但抛出错误。

该文件确实存在于该位置,并且权限是全面的 r/w。

这是尝试部署容器时生成的服务构建日志:

Deploying 'TomcatContainer Image id: tomcat:latest'... Existing container found: 41dd80a5fed99c657955cb773db8526ae1120cde54ae66889554ba3213c4ef7d, removing... Creating container... Container Id: b14609a8cf48d619a3e1d7607410557456fb1a0fba40fed52b455b211e130147 Container name: 'TomcatContainer' Starting container 'TomcatContainer' 'TomcatContainer Image id: tomcat:latest' has been deployed successfully.

来自 Docker Inspect 的环境变量:

JAVA_HOME
Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk/Contents/Home/

CATALINA_HOME
Users/blah/yadda/apache-tomcat-9.0.45

但是从项目文件夹中运行 echo $JAVA_HOMEecho $CATALINA_HOME 会返回空。

下面的这些(来自 Inspect)似乎是 Docker Image 的默认值......但这些文件在我的本地不存在;不知道该怎么做:

TOMCAT_NATIVE_LIBDIR
/usr/local/tomcat/native-jni-lib

LD_LIBRARY_PATH
/usr/local/tomcat/native-jni-lib

提前致谢。

【问题讨论】:

    标签: docker tomcat intellij-idea


    【解决方案1】:

    好的,我再一次回答自己。

    关于 Docker 容器和环境变量的问题存在一些基本的误解。在这种情况下,这些术语似乎指的是容器本身内的环境——而不是我所怀疑的与主机操作系统交互的容器。

    当我明白这一点后,我意识到我需要将我的 WAR 文件放入容器中。

    Intellij 似乎可以通过 Services>Docker>Containers>Edit Configs>Volume Bindings 做到这一点; 主机路径:全限定路径/Project/target容器路径:usr/local/tomcat/webapps,正如他们所说,这是一种享受。

    这篇文章涵盖了:Deploying Java webapp to Tomcat 8 running in Docker container

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 2022-01-19
      • 2011-03-06
      • 2019-04-07
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      相关资源
      最近更新 更多