Я пытаюсь запустить пользовательский графический интерфейс Java с использованием панели инструментов Docker в Windows.Я хочу теперь контейнировать это приложение, однако получаю следующую ошибку:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
/opt/jdk1.8.0_202/jre
/lib/amd64/libawt_xawt.so: libXext.so.6: cannot open shared object file:
No such file or directory
Я запускаю файл dockerfile.Настройка:
1) Установить Linux
2) Установить JDK
3) Скопировать в папку, содержащую JAR
4)запустить Docker-контейнер, который будет вызывать графический интерфейс (не интерфейс Linux, предпочтительнее не использовать VNC).
Я использую Xlaunch для терминала в Windowsи я могу запустить Firefox на Docker, используя это.
Это первый файл Docker
FROM anapsix/alpine-java
COPY ./myJarFolder /home/myJarFolder
CMD ["java","-jar","/home/myJarFolder/myJarFile.jar"]
Это второй файл Docker
FROM alpine:3.2
MAINTAINER Anastas Dancha [...]
# Install cURL
RUN apk --no-cache add ca-certificates
# Java Version
ENV JAVA_VERSION_MAJOR 8
ENV JAVA_VERSION_MINOR 45
ENV JAVA_VERSION_BUILD 14
ENV JAVA_PACKAGE jdk
# Download and unarchive Java
RUN mkdir /opt && / curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" && / http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz | tar -xzf - -C /opt && / ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk && / rm -rf /opt/jdk/*src.zip && /opt/jdk/lib/missioncontrol && /opt/jdk/lib/visualvm && /opt/jdk/lib/*javafx* && /opt/jdk/jre/lib/plugin.jar && /opt/jdk/jre/lib/ext/jfxrt.jar && /opt/jdk/jre/bin/javaws && /opt/jdk/jre/lib/javaws.jar && /opt/jdk/jre/lib/desktop && /opt/jdk/jre/plugin && /opt/jdk/jre/lib/deploy* && /opt/jdk/jre/lib/*javafx* && /opt/jdk/jre/lib/*jfx* && /opt/jdk/jre/lib/amd64/libdecora_sse.so && /opt/jdk/jre/lib/amd64/libprism_*.so && /opt/jdk/jre/lib/amd64/libfxplugins.so && /opt/jdk/jre/lib/amd64/libglass.so && /opt/jdk/jre/lib/amd64/libgstreamer-lite.so && /opt/jdk/jre/lib/amd64/libjavafx*.so && /opt/jdk/jre/lib/amd64/libjfx*.so
# Set environment
ENV JAVA_HOME /opt/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# COPY myJarFolder from local repository to the image
COPY ./myJarFolder /usr/local/myJarFolder
# Start the image with the jar file as the entrypoint
ENTRYPOINT ["java", "-jar", "usr/local/myJarFolder/myJarFile.jar"]
# EOF
Яполучить эту ошибку с первым файлом docker
$ docker run -ti --rm -e DISPLAY = 10.193.146.124: 0.0 Исключение myDocker: 1.0 в потоке "main" java.lang.UnsatisfiedLinkError: / opt/jdk1.8.0_202/jre /lib/amd64/libawt_xawt.so: libXext.so.6: невозможно открыть файл общего объекта: нет такого файла или каталога в java.lang.ClassLoader $ NativeLibrary.load (собственный метод) в java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1941) в java.lang.ClassLoader.loadLibrary (ClassLoader.java:1824) at java.lang.Runtime.load0 (Runtime.java:809) в java.lang.System.load (System.java:1086) в java.lang.ClassLoader $ NativeLibrary.load (собственный метод) в java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1941) в java.lang.ClassLoader.loadLibrary (ClassLoader.java:1845) в java.lang.Runtime.loadLibrary0 (Runtime.java:870) в java.lang.System.loadLibrary (система.java: 1122) в java.awt.Toolkit $ 3.run (Toolkit.java:1636) в java.awt.Toolkit $ 3.run (Toolkit.java:1634) в java.security.AccessController.doPrivileged (собственный метод) в java.awt.Toolkit.loadLibraries (Toolkit.java:1633) в java.awt.Toolkit. (Toolkit.java:1670) в java.awt.Component. (Component.java:593) в java.lang.Class.forName0 (Собственный метод) в java.lang.Class.forName (Class.java:348) в org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main (JarRsrcLoa der.java:56)
Iя получаю ошибка разрешения со вторым файлом Docker в mkdir / opt строке.
Может кто-нибудь, пожалуйста, дайте мне kТеперь правильный способ сделать это в Windows.