Docker run - Ошибка: невозможно получить доступ к jarfile

я новичок в докерах и Я пытаюсь запустить на своем 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

Вы можете получить отладочную оболочку в своем встроенном образе, запустив docker run --rm -it --entrypoint /bin/sh eloomina1/datacollector. Какие файлы вы там видите? Можете ли вы сопоставить это с вашим Dockerfile?

David Maze 07.07.2019 19:02
1
1
2 616
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Имя вашего jar-файла внутри изображения — dataCollector.jar, потому что вы использовали команду COPY следующим образом:

COPY target/${JAR_FILE} dataCollector.jar

Итак, ENTRYPOINT должен быть:

ENTRYPOINT ["java","-jar","dataCollector.jar"]

Другие вопросы по теме