Является ли worker-0.0.1-SNAPSHOT.jar чем-то, что mvn clean install
создает?COPY
копирует файлы с хоста докера в контейнер докера (как вы используете в COPY . .
, скопируйте целевой каталог сборки докера в WORKDIR
, чтобы скопировать ваш код в контейнер).
Если вы хотите перемещаться по файлам в контейнере, вы должны использовать
RUN cp ./target/worker-0.0.1-SNAPSHOT.jar worker-0.0.1-SNAPSHOT.jar
. Это создаст 2 копии файла в док-контейнере, по одному вцель / работник ... кувшин и один на ./worker...jar.Если вам нужна только одна копия, вам придется вместо этого использовать mv
(переместить) и переместить файл в тот же слой, который его создал , в противном случае система наложения докеров в любом случае сохранит старое местоположение,Я думаю, что вы могли бы достичь этого с помощью чего-то вроде:
RUN mvn clean install && mv ./target/worker-0.0.1-SNAPSHOT.jar worker-0.0.1-SNAPSHOT.jar
подсказка для дальнейшей оптимизации размера и безопасности изображения: вы можете сохранить конечное изображение еще меньше, используя многоэтапную сборку (https://aboullaite.me/multi-stage-docker-java/ кажется хорошим объяснением maven.)