Я следовал этим урокам, чтобы создать образ Docker для моего приложения Spring Boot, которое использует Maven в качестве инструмента для сборки.
Я использую ВМ boot2docker поверх машины с Windows 10, клонируя свой проект на ВМ из моего хранилища Bitbucker.
https://spring.io/guides/gs/spring-boot-docker/
https://www.callicoder.com/spring-boot-docker-example/
Я понимаю инструкции, но мне не удалось создать правильный образ Docker. Вот что я попробовал.
Используйте плагин Spotify maven для Dockerfile. Попробуйте запустить ./mvnw, чтобы собрать JAR, а также образ Docker. Но у меня не установлен Java в boot2docker. Таким образом, Maven-оболочка ./mvnw не может быть запущена.
Я пытался собрать JAR через Dockerfile, который основан на образе openjdk: 8-jdk-alpine. Я добавил RUN ./mvnw package
инструкцию в Dockerfile. Затем запустите docker build -t <my_project> .
, чтобы создать образ Docker.
Ошибка в инструкции RUN, требующей /bin/sh: mvnw: not found
The command '/bin/sh -c mvnw package' returned a non-zero code: 127
Мой Dockerfile, расположенный в каталоге, где расположен mvnw:
MAINTAINER myname
VOLUME /tmp
RUN ./mvnw package
ARG JAR_FILE=target/myproject-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Для 1 мне нужно установить Java в ОС, где находится механизм Docker. Но я думаю, что это не очень хорошая практика, потому что это снижает мобильность.
Во-первых, во-первых, я не знаю, как успешно запустить ./mvnw в Dockerfile. Во-вторых, я не уверен, является ли хорошей практикой создание JAR-файла Spring Boot с помощью Dockerfile, поскольку я не вижу никакого учебного пособия по «Docker для Spring Boot», которое бы указывало на это.
Итак, как лучше всего решить мою ситуацию? Я новичок в Докере. Комментарии и ответы приветствуются!