Docker: JAR Webapp не может найти необходимые библиотеки - PullRequest
0 голосов
/ 17 июня 2019

Я использую Java 10 Webapp (не разработано мной, просто тестирую его) у которого есть встроенный Tomcat, которому нужны некоторые библиотеки, все в контейнере Docker (compose) Вот выброшенное исключение:

[org.apache.catalina.util.LifecycleBase#log(175)] Failed to initialize 
component [Connector[org.apache.coyote.http11.Http11AprProtocol-8080]]
my-webapp    | org.apache.catalina.LifecycleException: The configured 
protocol [org.apache.coyote.http11.Http11AprProtocol] requires the 
APR/native library which is not available

А вот мой compose.yml: версия: '3.1'

services:
    my-webapp:
    container_name: "my-webapp"
    image: openjdk:10-jre-slim
    hostname: my-webapp
    volumes:
        - ./lib:/home/lib
        - ./my-webapp-1.0.1-SNAPSHOT-exec.jar:/home/my-webapp-1.0.1- 
   SNAPSHOT-exec.jar
        - ./espera2minutos.sh:/home/espera2minutos.sh
    command:
        - sh /home/espera2minutos.sh        

    entrypoint: 

        - java
        - -jar
        #- -Djava.library.path=/home/lib
        - -DLD_LIBRARY_PATH=/home/lib
        - /home/my-webapp-1.0.1-SNAPSHOT-exec.jar

    environment:
        - LD_LIBRARY_PATH=/home/lib
        - spring.datasource.url=jdbc:postgresql://postgresql:5432/my- 
    webapp
        - spring.cassandra.contactpoints=cassandra
        - spring.cassandra.port=9042
        - spring.cassandra.keyspace=fulmar
        #- spring.datasource.username=postgres
        #- spring.datasource.password=postgres
        #- spring.jpa.hibernate.ddlAuto=update+


    #network_mode: bridge    
    ports:
        - 8443:8443
        - 8080:8080
    #links:
    #    - postgresql 
    #    - cassandra  
    depends_on:
        - cassandra

Дело в том, что контейнер умирает, когда мое приложение выдает код 1, но до того, как это произойдет, я могу запускать команды в контейнере, поэтому я проверяю, есть ли env var с именем "$ LD_LIBRARIES_PATH" со значением " / home / lib "и работает ls / home / bin Я проверяю, что, во-первых, папка правильно смонтирована, а во-вторых, обе необходимые библиотеки "libapr-1.so.0" и "libtcnative-1.so.0" хранятся в папке, но все равно получают то же самое исключение

Надеюсь, кто-нибудь может принести сюда немного света. Заранее спасибо

...