У меня есть проект JavaFX Maven.Запустить Я запускаю файл Jar, графический пользовательский интерфейс открывается для пользователя.Я пытаюсь запустить его из контейнера Docker.Я использую Ubuntu 16.04.
Я получаю эту ошибку:
Исключение в потоке "AWT-EventQueue-0" java.awt.HeadlessException: не установлена переменная X11 DISPLAY, но эта программа выполнила операцию, которая требует этого.
Вот мой файл Docker (используется решение из здесь ).
FROM docker.io/java as firstStage
WORKDIR /workdir/
RUN /usr/sbin/useradd --comment Developer \
--home-dir /home/developer \
--non-unique --uid 1000 --user-group --system \
--shell /bin/bash developer && mkdir -p /home/developer
RUN chown -R developer:developer /home/developer && mkdir -p /opt/app && chown -R developer:developer /opt/app
RUN echo 'developer ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
USER developer
ENV HOME /home/developer
VOLUME /opt/app
FROM maven:3.5.0-jdk-8
COPY --from=firstStage /workdir/ .
COPY . /
RUN apt-get update && apt-get install -y --no-install-recommends openjfx && rm -rf /var/lib/apt/lists/* && mvn clean install && DISPLAY=localhost:0.0
CMD ["java","-jar","/target/CodeDemo-1.0-SNAPSHOT.jar"]
I 'Мы просмотрели множество других ответов на этот вопрос, и вот что еще я пробовал:
Запуск CMD с -Djava.awt.headless=true
.
Попытка SO-решения здесь где вызапустите «xauth add» внутри контейнера.Но хаут "не найден".Поэтому я попытался добавить RUN sudo apt-get install xauth
в Dockerfile.Когда я пытался собрать, я получил сообщение о том, что xauth не найден.Я сделал то же самое с x11-apps
.
Я подумал, может быть, он не будет установлен, потому что его не удалось найти на моем хост-компьютере (просто случайное предположение), но я могу запустить xauth на своем хостеmachine.
Единственными другими решениями, которые я видел, были Putty и ssh.Я просто хочу запустить контейнер Docker на моем компьютере, а не ssh в другой.Я также видел некоторые ответы о виртуализации.Нужно ли создавать целую виртуальную машину для запуска одной программы?Или я что-то упустил?
У кого-нибудь есть предложения?