Я предполагаю, что использование TASKKILL / IM mongod.exe прекрасно подходит для прекращения работы сервера mongodb.
Вы используете java:8
базовое изображение, которое, скорее всего, не обеспечивает графическое окружение.
Вы можете использовать ubuntu:18.04
базовый образ с установленными вручную пакетами openjdk-11-jdk
и xvfb
. Команда xvfb-run
позаботится о настройке виртуальной среды X-сервера:
xvfb-run устанавливает файл полномочий X (или использует существующий, указанный пользователем), записывает в него куки (см. xauth (1x)) и затем запускает X-сервер Xvfb в качестве фонового процесса. Идентификатор процесса Xvfb сохраняется для последующего использования. Затем указанная команда выполняется с использованием дисплея X, соответствующего только что запущенному серверу Xvfb и ранее созданному файлу полномочий X.
blockquote>Dockerfile
FROM ubuntu:18.04 RUN apt-get update -y && apt-get upgrade -y && apt-get install -y openjdk-11-jdk xvfb ADD JFrameDocker.java MANIFEST.mf ./ RUN javac JFrameDocker.java RUN jar cfm JFrameDocker.jar MANIFEST.mf JFrameDocker.class RUN xvfb-run java -jar JFrameDocker.jar
JFrameDocker.java
import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class JFrameDocker { public static void main(String[] args) { JFrame frame = new JFrame(); JPanel panel = new JPanel(); JLabel lable = new JLabel("Hello World"); panel.setLayout(new FlowLayout()); frame.add(panel); panel.add(lable); frame.setSize(800, 600); frame.setVisible(true); System.out.println("Up and running"); } }
MANIFEST.mf
Manifest-Version: 1.0 Main-Class: JFrameDocker