gpt4 book ai didi

java - 在生产环境中实现最佳性能的 APR

转载 作者:行者123 更新时间:2023-12-04 19:10:58 29 4
gpt4 key购买 nike

我正在 docker 容器中安装一个 java 应用程序。它运行良好,但我在日志中不断出现这个错误:

INFO 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the 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 安装此 APR 包和 this ,并通过在我的 dockerfile 中添加这一行来安装 tomcat native:

RUN apt-get install -y libtcnative-1



但是,当添加此行时,我在日志中收到以下消息:

ERROR 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.1.33] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [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

任何帮助表示赞赏。谢谢!

最佳答案

如果有人仍然感兴趣,这就是我所做的:

  • 从 Apache 下载最新的 apr 和 tcnative 并将存档解压缩到 Dockerfile 所在的目录
  • 执行多阶段构建。第一阶段构建库:
  •     FROM adoptopenjdk/openjdk11:jdk-11.0.1.13 AS build
    ADD apr-1.7.0 $HOME/apr-1.7.0
    ADD tcnative $HOME/tcnative
    ARG DEBIAN_FRONTEND=noninteractive
    RUN apt-get update -y && \
    apt-get -y upgrade && \
    apt-get install -y build-essential libssl-dev
    WORKDIR $HOME/apr-1.7.0
    RUN ./configure && make && make install

    WORKDIR $HOME/tcnative
    RUN ./configure --with-apr=/usr/local/apr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=$HOME/OPENSSL --prefix=/usr/local/apr
    RUN make && make install
  • 第二阶段构建生产服务器:
  •     FROM adoptopenjdk/openjdk11:jre-11.0.10_9
    ARG DEBIAN_FRONTEND=noninteractive
    RUN apt-get update -y && \
    apt-get -y upgrade && \
    apt-get install -y --no-install-recommends libssl-dev x11-apps && \
    apt-get clean && \
    apt-get autoremove -y --purge && \
    rm -rf /var/lib/apt/lists/*
    COPY --from=build /usr/local/apr /usr/local/apr
  • 当你调用 java 来运行你的 jar 时,设置你的库路径:
    入口点 ["java","-Djava.library.path=/usr/local/apr/lib","-jar","app.jar"]

  • 该应用程序现在启动并报告正确的库:
    org.apache.catalina.core.AprLifecycleListener - Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].

    关于java - 在生产环境中实现最佳性能的 APR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547931/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com