Где найти произведенное Docker изображение - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь реализовать пример из этого урока:

https://spring.io/guides/gs/spring-boot-docker/

Я успешно скомпилировал пакет:

C:\Users\Desktop\rest_api>docker build -t springio/gs-spring-boot-docker .
Sending build context to Docker daemon  105.6MB
Step 1/5 : FROM openjdk:13-alpine
 ---> c4b0433a01ac
Step 2/5 : EXPOSE 8080
 ---> Using cache
 ---> 010600c5a7d0
Step 3/5 : ARG JAR_FILE=target/rest_api.jar
 ---> Running in 8ba2e28e0870
Removing intermediate container 8ba2e28e0870
 ---> b453cd05cbd2
Step 4/5 : ADD ${JAR_FILE} app.jar
 ---> dade5dd3eff2
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in e8a1f985f0fd
Removing intermediate container e8a1f985f0fd
 ---> cfa353eb23c5
Successfully built cfa353eb23c5
Successfully tagged springio/gs-spring-boot-docker: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.

C:\Users\Desktop\rest_api>

Мне не ясно, где находится скомпилированный пакет? Можете ли вы указать мне, где он находится и как его смонтировать в Docker?

Docker файл:

FROM openjdk:13-alpine
EXPOSE 8080
ARG JAR_FILE=target/rest_api.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Чтобы получить «скомпилированный пакет» (весенний загрузочный jar), вам нужно сначала вызвать mvn package.

Эта команда скомпилирует исходные коды и создаст JAR в целевой директории вашего проекта.

Поскольку вы работаете с весенней загрузкой, вам нужно настроить плагин весенней загрузки maven (убедитесь, что он отображается в pom.xml). Этот плагин создает специальный jar приложений весенней загрузки со всеми зависимостями. внутри. Он сохраняет его в каталоге target

Итак, после вызова команды mvn package и перед запуском каталога docker build command go to target убедитесь, что у вас относительно большой JAR-файл application.

Это объяснение, я полагаю, отвечает на часть вопроса «где находится скомпилированный пакет?»

Теперь что касается «как монтировать на Docker» часть вопрос:

В Dockerfile вы используете команду ADD. Эта команда берет jar-файл и «добавляет» его в изображение docker (как в файловую систему контейнера), поэтому оно будет доступно в /app.jar (потому что вы также переименовываете артефакт в пути)

0 голосов
/ 24 февраля 2020

Во время сборки файл jar был скопирован с вашего компьютера в контейнер и с тех пор находится в /app.jar. Не нужно его монтировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...