In Spring Boot-Projekt muss ich den Standardspeicherort in den Ressourcenordner ändern. Ich verwende diesen Code, um die gewünschten Ergebnisse zu erzielen:Statischer Spring Boot-Ordner in Docker
Auf meiner lokalen Maschine funktioniert alles. Wenn Sie das Bild Docker erstellen und führen Sie es everyhing scheint in Ordnung zu sein, aber wenn ich versuche, einige der Dateien in dem Verzeichnis zu beantragen wirft es diese Ausnahme:
2017-08-23 13:03:48.652 ERROR 8 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
java.net.UnknownHostException: pictures
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.0_144]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_144]
at java.net.Socket.connect(Socket.java:538) ~[na:1.8.0_144]
at sun.net.ftp.impl.FtpClient.doConnect(FtpClient.java:964) ~[na:1.8.0_144]
at sun.net.ftp.impl.FtpClient.tryConnect(FtpClient.java:924) ~[na:1.8.0_144]
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:1019) ~[na:1.8.0_144]
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:1005) ~[na:1.8.0_144]
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:294) ~[na:1.8.0_144]
... more logs (not sure if they are needed to find the problem)
Die ganze stack der Ausnahme.
ich geprüft, ob die Ordner Bilder in den Docker Bildern und ja sein ist. Ich bin mir nicht sicher, was dieses Problem verursacht. Kann es sein, dass file:
vor dem Dateipfad? Ich benutze diese Variable System.getProperty("user.dir")
in einer anderen Funktion und es funktioniert ordnungsgemäß, so dass es nicht das Problem sein muss.
Dockerfile
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
RUN mkdir /files
ENV JAVA_OPTS="-Xmx512m -Xss512k"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
Das seltsame Teil von Java aktiviert wird, ist, dass es einen 'UnknownHostException' aus der' FTPClient' wirft, wie wenn es wurde versucht, eine FTP-Verbindung zu einem Host 'pictures' genannt zu tun. – Berger
Ja, deshalb kann ich nichts im Internet finden und denke, dass es von Docker verursacht wurde. – kirpt
Haben Sie einen Teil Ihres Codes, der versucht, FTP-Verbindungen herzustellen, und könnten Sie ihn veröffentlichen (sehen Sie auch, ob der Stack-Trace eine Ihrer benutzerdefinierten Klassen anzeigt). – Berger