Я хочу внести изменения в исходный код и запустить 2 службы (один из образа mysql, другой из моего Dockerfile) через docker compose. Мне нужен файл JAR для запуска в Dockerfile. Чтобы получить его, мне нужно выполнить упаковку, используя Maven, вручную просматривая свойства разработки после того, как я убедился, что работает локальный сервер базы данных. Я не хочу делать все эти вещи вручную. Я хочу создать jar / war из самого последнего исходного кода динамически в Dockerfile и использовать его вместе с автоматически созданным экземпляром mysql. Я вижу, что люди просто копируют jar / war, который они создали ранее, используя инструмент, и запускают его в Dockerfile. Я не хочу этого. Я пытался сделать упаковку внутри Dockerfile, но в этом случае он ищет файл свойств и URL для источника данных. Я должен создать локальный сервер базы данных в любом случае? Я попытался показать URL сервиса, который будет создан из docker compose, но он сначала пытается собрать Dockerfile, а остальное - в Docker Compose. Таким образом, во время работы приложения весенней загрузки сервер базы данных не работает. Это Dockerfile.
FROM maven:3.6-jdk-8-slim as build
COPY pom.xml pom.xml
RUN mvn -B dependency:resolve dependency:go-offline
COPY src src
RUN mvn -B package
ARG JAR_FILE="myproject.jar"
COPY --from=build target/*.jar ${JAR_FILE}
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar", ${JAR_FILE}]