dockerizing Spring Boot Application error: ошибка: неверный или поврежденный файл jarfile /app.jar - PullRequest
0 голосов
/ 02 ноября 2019

Я начинаю работать с докером и пытаюсь докеризировать мое загрузочное приложение Spring. Я сгенерировал это с помощью весеннего инициализатора. Я работаю с Maven. Мой DockerFile выглядит так:

FROM java:8-jdk-alpine

COPY ${JAR_FILE} app.jar

WORKDIR /usr/app

EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

Это довольно просто.

Я выполнил следующие команды:

docker build -t shortenurl .

Я вижу изображение в консоли с образами докера:

enter image description here

Но когда я пытаюсь запустить образ с помощью команды: docker run -p 8080:8080 shortenurl Я получаю это сообщение об ошибке: Ошибка: неверный или поврежденный jarfile /app.jar

Я пробовал разные конфигурации, но не оченьконечно. Любой совет?

Спасибо.

Это мой раздел плагинов pom.xml:

       <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.2.3</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>

Это мой журнал после команды: docker build -t Shorttenurl.

$ docker build -t shortenurl .
Sending build context to Docker daemon  32.89MB
Step 1/5 : FROM java:8-jdk-alpine
 ---> 3fd9dd82815c
Step 2/5 : COPY ${JAR_FILE} app.jar
 ---> 248aa4be697d
Step 3/5 : WORKDIR /usr/app
 ---> Running in 5fcd71c548af
Removing intermediate container 5fcd71c548af
 ---> bc344b970b11
Step 4/5 : EXPOSE 8080
 ---> Running in 46b4e4f8e9b7
Removing intermediate container 46b4e4f8e9b7
 ---> 6b4f55a86a23
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in 838a6052f4c8
Removing intermediate container 838a6052f4c8
 ---> 7d7d272ea42d
Successfully built 7d7d272ea42d
Successfully tagged shortenurl:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

1 Ответ

0 голосов
/ 02 ноября 2019

Вы строите с spring-boot-maven-plugin, но не генерируете исполняемый файл jar. Обновите конфигурацию вашего плагина:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

, и все будет в порядке.

...