problem with java headless
creating images (uploading files) on the docker container ends with a stacktrace:
minerva_1 | Caused by: java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
minerva_1 | at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
minerva_1 | at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
minerva_1 | at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
minerva_1 | at java.security.AccessController.doPrivileged(Native Method)
minerva_1 | at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
minerva_1 | at java.lang.Class.forName0(Native Method)
minerva_1 | at java.lang.Class.forName(Class.java:264)
minerva_1 | at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
minerva_1 | at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
minerva_1 | at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1181)
minerva_1 | at org.apache.batik.svggen.SVGGraphics2D.<init>(SVGGraphics2D.java:153)
minerva_1 | at org.apache.batik.svggen.SVGGraphics2D.<init>(SVGGraphics2D.java:262)
minerva_1 | at lcsb.mapviewer.converter.graphics.SvgImageGenerator.createImageObject(SvgImageGenerator.java:36)
minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.draw(AbstractImageGenerator.java:677)
minerva_1 | at lcsb.mapviewer.converter.graphics.AbstractImageGenerator.saveToOutputStream(AbstractImageGenerator.java:969)
minerva_1 | at lcsb.mapviewer.api.convert.ConvertRestImpl.converToImage(ConvertRestImpl.java:67)
minerva_1 | at lcsb.mapviewer.api.convert.ConvertRestImpl.converToImage(ConvertRestImpl.java:77)
minerva_1 | at lcsb.mapviewer.api.convert.ConvertRestImpl$$FastClassBySpringCGLIB$$c6591b50.invoke(<generated>)
minerva_1 | at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
minerva_1 | at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)
minerva_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
minerva_1 | at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
minerva_1 | at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
minerva_1 | at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
minerva_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
minerva_1 | at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)
minerva_1 | at lcsb.mapviewer.api.convert.ConvertRestImpl$$EnhancerBySpringCGLIB$$af20f2d5.converToImage(<generated>)
minerva_1 | at lcsb.mapviewer.api.convert.ConvertController.convertInputToImage(ConvertController.java:71)
minerva_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
minerva_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
minerva_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
minerva_1 | at java.lang.reflect.Method.invoke(Method.java:498)
minerva_1 | at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
minerva_1 | at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
minerva_1 | at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
minerva_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849)
minerva_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:760)
minerva_1 | at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
minerva_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
minerva_1 | ... 74 more
minerva_1 | 2019-01-18 08:59:38,260 WARN [http-apr-8080-exec-6] (AbstractHandlerExceptionResolver.java:136) - Resolved [org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.]
Here is the custom .env file for the container:
POSTGRES_USER=map_viewer
POSTGRES_PASSWORD=123qweasdzxc
POSTGRES_DB=map_viewer
# the following is a beta version of MINERVA 12.2.. After the official realese of 12.2.0, the war file will be available at https://webdav-r3lab.uni.lu/public/minerva/12.2.0/minerva.war
WAR_URL=https://minerva-dev.lcsb.uni.lu/convertor/minerva.war
Most probably it's related to: https://stackoverflow.com/a/10165905/1127920
reported by @david.hoksza