Создание нового файла jar в файле Docker - PullRequest
0 голосов
/ 08 мая 2020

Я использую docker для создания моего образа приложения Springboot Server с mvn.

Вот мой docker файл ниже, похоже, что образ не содержит новейшего файла jar, может кто-нибудь помогите и скажите почему?

# Start from maven docker image
FROM maven:3.6.1-jdk-8-alpine

# COPY all sources
COPY . .

# install the package into the local repository, for use as a dependency in other projects locally
RUN mvn install

# test the compiled source code using a suitable unit testing framework
RUN mvn test

# take the compiled code and package it in its distributable format, such as a JAR
RUN mvn package

# define a variable
ARG JAR_FILE=target/*.jar

# copy jar file in to container
COPY ${JAR_FILE} app.jar

# open to port 8080
EXPOSE 8080

# configure a container that will run as an executable
ENTRYPOINT ["java","-jar","/app.jar"]

1 Ответ

0 голосов
/ 08 мая 2020

COPY ${JAR_FILE} app.jar копирует файл в текущий каталог, но после попытки запустить /app.jar из каталога root. измените его на

COPY ${JAR_FILE} /app.jar

Но все же после создания файла jar вам не нужен maven, поэтому лучше использовать многоступенчатый:

FROM maven:3.6.1-jdk-8-alpine as builder
COPY . .
RUN mvn install
RUN mvn test
RUN mvn package
ARG JAR_FILE=target/*.jar

FROM openjdk:8-jre    
COPY --from=builder ${JAR_FILE} /app.jar
EXPOSE 8080
CMD ["java","-Djava.security.egd=file:/dev/./urandom", "-jar","/app.jar"]
...