J'ai essayé de copier des fichiers de ma machine Windows vers le conteneur Docker à l'aide de la commande de fichier Docker et de lire ces fichiers à partir du service Web Spring. Webservice lance un fichier d'erreur introuvable!
Ici, j'essaye de copier mon répertoire local src / nlp vers / data container directoty
ci-dessous se trouve le volume de docker disponible
java.io.FileNotFoundException: /data/train/models/en/token/en-token.bin (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
InputStream inputStream = new FileInputStream(environment.getProperty("nlp.learning.dir")+ "/train/models/en/token/en-token.bin");
Java
server.port=8080 logging.level.radial.nlp=DEBUG logging.file = mylogfile.log nlp.learning.dir = /data/
FROM openjdk:8-jdk-alpine
EXPOSE 8080
ARG JAR_FILE=/target/nlp-0.0.1-SNAPSHOT.jar
ADD ${JAR_FILE} nlp-0.0.1-SNAPSHOT.jar
ADD src/nlp /data
ENTRYPOINT ["java","-jar", "nlp-0.0.1-SNAPSHOT.jar"]`
3 Réponses :
Veuillez noter une barre oblique supplémentaire dans votre chemin avant le répertoire train
/data//train/models/en/token/en-token.bin
Pensez à changer la ligne de lecture en:
InputStream inputStream = new FileInputStream (environment.getProperty ("nlp.learning.dir") + "train / models / en / token / en-token.bin");
J'ai modifié l'erreur maintenant, c'était une faute de frappe désolé pour cela .. pouvez-vous vérifier à nouveau maintenant? ce n'est pas lié à une barre oblique supplémentaire je crois
essayez d'ajouter RUN ls / data / train / models / en / token ou RUN cat /data/train/models/en/token/en-token.bin à votre Dockerfile après avoir ajouté des ressources. Quelle est la sortie lorsque vous créez une image?
Il doit contenir le nom du fichier / le contenu du fichier
Vous n'avez probablement pas de fichier src / nlp / train / models / en / token / en-token.bin du même répertoire que celui à partir duquel vous construisez votre conteneur.
parent/
âââ Dockerfile
âââ src/
âââ nlp/
âââ train/
âââ models/
âââ en/
âââ token/
âââ en-token.bin <--- does this exist?
J'ai modifié ma dépendance au plugin maven, maintenant cela fonctionne correctement
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.7</version>
<!-- Wire up to the default build phases -->
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>