Je fais construire une application Java que je vais accueillir dans un récipient de docker. Une partie de cette application est d'utiliser cette bibliothèque:
https://github.com/wooio/htmltopdf-java
Il faut une URL et il se transforme en un document PDF. Cependant, lors de l' exécution du .jar
fichier par docker je reçois l'erreur qui il manque des dépendances natives:
java.lang.UnsatisfiedLinkError: Unable to load library '/tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so': Native library (tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so) not found in resource path
Ceci est documenté dans la dernière section du lien ci-dessus, qu'il a besoin de ces bibliothèques afin de fonctionner correctement:
- libc6 (ou glibc) libx11 libxext libxrender libstdc ++ libssl1.0 freetype fontconfig
Je l' ai modifié mon Dockerfile
pour essayer d'installer ces dépendances à la construction docker:
FROM openjdk:8-jdk-alpine
RUN sh -c 'apk update && apk add libssl1.0 libx11 libxext libxrender libstdc++ freetype fontconfig'
COPY server/target/server-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
Je suis nouveau à docker, mais je trouve ce bout de code dans un numéro du repo github . Mais je ne peux toujours pas faire fonctionner.
Pouvez-vous repérer la question ici pourquoi je ne peux pas exécuter le programme?
Éditer:
Je reçois toujours l'erreur java.lang.UnsatisfiedLinkError: Unable to load library '/tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so': Native library (tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so) not found in resource path
Mais quand l' exécution de ssh dans le récipient Docker et en regardant dans le tmp
-folder l' io.woo.htmltopdf
est listé -library. Le chemin tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so
existe aussi dans le récipient de docker.
Se pourrait-il quelque chose avec les paramètres de chemin? Que l'application Java n'utilise pas le bon chemin en quelque sorte?
Le app.jar
qui est en cours d' exécution se trouve dans le dossier racine, où le tmp
dossier est également situé - il devrait le trouver?
J'ai réussi à faire une solution à ce problème en utilisant le natif wkhtmltopdf
bibliothèque en même temps que l' enveloppe java wkhtmltopdf .