Я пытаюсь запустить 3 контейнера через docker-compose, с postgres, cassandra и моим веб-приложением, у которого есть встроенный сервер Tomcat с некоторыми зависимостями, как ARP / Native. Эти библиотеки находятся в папке с именем "lib" на том же уровне jar.
Я запускаю PoC в Windows 10 (используя контейнеры linux) перед перемещением его на сервер CentOS, если он работает на PoC. Я искал по сети и, кажется, не является изолированной проблемой, но или я не могу найти решение, или показанное решение не работает для меня. Вот мой docker-compose.yml со всеми соответствующими файлами / папками, хранящимися на одном уровне:
version: '3.1'
services:
fulmar-webapp:
container_name: "my-webapp"
image: openjdk:11-jre-slim
hostname: mywebapp
volumes:
- ./lib:/home/lib
- ./fulmar-1.0.1-SNAPSHOT-exec.jar:/home/mywebapp-1.0.1-SNAPSHOT-exec.jar
entrypoint:
- java
- -jar
- /home/mywebapp-1.0.1-SNAPSHOT-exec.jar
environment:
- LD_LIBRARY_PATH:/home/lib
- spring.datasource.url=jdbc:postgresql://postgresql:5432/mydb
- spring.datasource.username=postgres
- spring.datasource.password=postgres
- spring.jpa.hibernate.ddlAuto=update
network_mode: bridge
ports:
- 8443:8443
- 8080:8080
links:
- postgresql
- cassandra
postgresql:
container_name: "mydb"
image: postgres:11.1-alpine
restart: always
environment:
POSTGRES_DB: mydb
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- ./startup.sql:/docker-entrypoint-initdb.d/startup.sql
- postgresdata:/var/lib/postgresql/data
ports:
- 5432:5432
network_mode: bridge
cassandra:
container_name: "cassandra"
image: cassandra
ports:
- 9042:9042
network_mode: bridge
Объемы:
postgresdata:
Не уверен, правильно ли отображается папка с библиотеками или фактически не монтируется том. Это именно то окружение окружающей среды, которое мне нужно поместить туда:
Environment = LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / путь / к / библиотеки / Библиотека
Два результата, с которыми я столкнулся:
1-Tomcat исключение, потому что он не может найти библиотеки:
[ERROR][org.apache.catalina.util.LifecycleBase#log(175)] Failed to
initialize component [Connector[org.apache.coyote.http11.Http11AprProtocol-
8080]] | org.apache.catalina.LifecycleException: The configured protocol
[org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library
which is not available
2-WARNING: переменная LD_LIBRARY_PATH не установлена. По умолчанию используется пустая строка.
Спасибо всем заранее
РЕДАКТИРОВАТЬ: просто сообщите, когда я запускаю docker-compose up, и мое приложение выдает это исключение, контейнер больше не доступен, поэтому я не могу выполнить какие-либо команды в нем