【发布时间】:2019-10-26 03:00:56
【问题描述】:
我正在一个 docker 容器中安装一个 java 应用程序。它运行良好,但我在日志中不断出现此错误:
INFO 1 --- [ost-startStop-1] ocatalina.core.AprLifecycleListener : 在 java.library.path: [/usr /java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/ lib:/usr/lib]
所以,我尝试按照this 和this 安装此APR 包,并通过在我的dockerfile 中添加此行来安装tomcat native:
运行 apt-get install -y libtcnative-1
但是,当添加此行时,我在日志中收到以下消息:
错误 1 --- [ost-startStop-1] ocatalina.core.AprLifecycleListener :安装了基于 APR 的 Apache Tomcat Native 库的不兼容版本 [1.1.33],而 Tomcat 需要版本 [1.2.14]
我尝试安装:
apt-get install -y openjdk-8-jdk libapr1-dev
和
apt-get install -y openjdk-8-jdk libtcnative-1 libapr1-dev
但这些都不起作用..我不断收到相同的消息。
我也尝试按照第一个答案 here 从源安装,但这也不起作用。
这是我的 dockerfile 的其余部分:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -y software-properties-common python-software-properties \
&& add-apt-repository ppa:mozillateam/ppa \
&& apt-get update \
&& apt-get install -y firefox firefox-esr
RUN apt-get install -y libtcnative-1 openjdk-8-jdk
感谢任何帮助。谢谢!
【问题讨论】:
-
"I keep gettig this error" 但是日志记录是
INFO,所以它不是错误。这是一条信息性日志消息。 -
从消息中,我的印象是我应该使用这个库进行生产,我也想在生产中使用这个 dockerfile
-
当我在 docker 之外本地运行它时,我没有收到此消息。另外,我使用 gradlee 在容器外构建 jar。我想知道这是否与它有关..
-
很抱歉,该 dockerfile 的哪一部分安装了 Tomcat?
-
假设您没有安装 Tomcat,但它嵌入在您的代码中,那么您显然需要一个与代码中嵌入的 Tomcat 版本相匹配的 APR 文件,因此获取它应该是您的一部分Gradle 构建,APR 文件应与 jar 文件一起交付。
标签: java docker ubuntu tomcat apr