я новичок в докерах и Я пытаюсь запустить на своем Mac:
докер запускает eloomina1/datacollector
вернуться с:
Error: Unable to access jarfile dataCollector-0.0.1-SNAPSHOT.jar
Я проверил, и это не права доступа к файлу. Я создаю образ следующим образом:
docker build --build-arg JAR_FILE=dataCollector-0.0.1-SNAPSHOT.jar -t eloomina1/datacollector .
мой докерфайл:
FROM adoptopenjdk/openjdk12:latest
MAINTAINER Shahar Wider <[email protected]>
VOLUME /tmp
ARG JAR_FILE
COPY target/${JAR_FILE} dataCollector.jar
ENTRYPOINT ["java","-jar","dataCollector-0.0.1-SNAPSHOT.jar"]
мой пом.xml:
<groupId>com.eloomina</groupId>
<artifactId>dataCollector</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dataCollector</name>
<properties>
<java.version>12</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<docker.image.prefix>eloomina1</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>eloomina1/datacollector</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
моя файловая система:
├── Dockerfile
├── HELP.md
├── cd
├── dataCollector.log
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src
└── target
├── dataCollector-0.0.1-SNAPSHOT-docker-info.jar
├── dataCollector-0.0.1-SNAPSHOT.jar
Имя вашего jar-файла внутри изображения — dataCollector.jar, потому что вы использовали команду COPY следующим образом:
COPY target/${JAR_FILE} dataCollector.jar
Итак, ENTRYPOINT должен быть:
ENTRYPOINT ["java","-jar","dataCollector.jar"]
Вы можете получить отладочную оболочку в своем встроенном образе, запустив
docker run --rm -it --entrypoint /bin/sh eloomina1/datacollector. Какие файлы вы там видите? Можете ли вы сопоставить это с вашим Dockerfile?