Я использую 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" хранятся в папке, но все равно получают то же самое исключение
Надеюсь, кто-нибудь может принести сюда немного света. Заранее спасибо