【发布时间】:2021-11-16 13:13:23
【问题描述】:
我正在尝试在 docker 环境中运行 spring-boot maven 项目。所以设置如下:
- Docker 已设置并安装 Java 等(仅完成一次)
- 应用程序正在运行(可以运行任意次数)
我正在经历什么
每次我通过mvn spring-boot:run 运行spring-boot 项目时,它都会从pom.xml(Java、Maven 等)安装所有必需的库(每次我运行项目时)。是从 docker 预安装的),然后运行项目。
我想做什么
这个每次都重新安装的过程是多余且耗时的,所以我想委派这个安装的东西给docker。理想情况下,使用pom.xml 进行安装,但也欢迎使用其他方式。
到目前为止我已经尝试过什么
- 安装
npmusing a good tutorial,但它在Docker中失败,因为在docker build期间我们无法重新启动终端,而source ~/.bash_profile似乎也不起作用。 - 尝试直接在 docker 中构建该项目(通过
RUN mvn clean install --fail-never)并将npm和node文件夹复制到我运行应用程序的目录中。但它似乎也不起作用,因为它每次都安装它们而没有任何改变。
有人可以帮我吗?这个问题卡住了项目。非常感谢!
【问题讨论】:
-
我不明白你为什么要通过 maven 运行你的 spring-boot 项目。为什么不打包战争或可执行 jar 并运行它?
-
有一个official guide about Spring Boot with Docker。你试过吗?顺便说一句,为什么
node/npm?这显然与 Java / Spring Boot 无关…… -
这不是 Maven 的工作方式。
-
我建议在 docker 之外构建您的应用程序,并且只将生成的应用程序(spring-boot app jar)放入 docker...这将使用您的本地缓存,从而阻止每次下载。您可以在 docker 中执行相同的操作,但您必须构建一次并将本地缓存保存为卷或容器。您也可以将本地缓存从外部装入。码头集装箱......
标签: java spring-boot docker maven