Я пытаюсь запустить Docker-контейнер, который использует maven для развертывания Java-приложения. Без использования Docker, я использую команду для развертывания: "java -jar app-v0.1.jar"
Поскольку версия моего приложения имеет тенденцию к изменению (app-v0.1, v0.2 ...), обычно я запускаю "java-jar * .jar " (всегда есть только 1 файл .jar в рабочей папке).Это работает локально.
Однако, похоже, это невозможно применить при сборке контейнера Docker.Вот мой dockerfile
ОТ openjdk: 8
WORKDIR / app
COPY * .jar.
CMD ["java", "-jar", "* .jar"]
EXPOSE 8181
Я могу создать образ докера из этого Dockerfile.Но когда я пытаюсь запустить контейнер, я всегда получаю ошибку : невозможно получить доступ к jarfile * .jar.
Я также пытался:
COPY target/*.jar.
RUN file = `find.-name "* .jar" -exec basename {} \; `
CMD [" java "," -jar "," $ {file} "]
, что возвращает Ошибка: невозможно получить доступ к jarfile $ {file}
Если я изменю "* .jar" на определенное имя, например
CMD ["java "," -jar "," app-v0.1.jar "]
все работает нормально.Но, очевидно, я не хочу менять свой Dockerfile каждый раз, когда в моем приложении происходит обновление кода.
Есть ли способ, которым я могу поместить переменные в Dockerfile, что-то вроде "
CMD [" java "," -jar "," $ {filename} .jar"]"?
(Если это поможет: я использую конвейер Jenkins для автоматизации процесса сборки докера)