【发布时间】:2022-07-13 13:37:12
【问题描述】:
我在 Maven 上有一个多模块项目。它非常古老,并伴随着一种特殊的手鼓舞蹈。
项目结构
root
|__api
|__build
|__flash
|__gwt
|__server
|__service
|__shared
|__target
|__toolset
为了构建这样一个项目,我有一个特殊的脚本需要在项目的根目录中执行。
./build/build_and_deploy.sh
在windows上构建的时候,问题很多(路径长、符号和行分隔符丢失等问题),所以想在docker中构建这个项目。 起初我想从 io.fabric8 连接 docker-maven-plugin 作为 maven 中的插件,但据我了解,它无法在 docker 中运行自身的构建.
于是我尝试写Dockerfile,遇到如下问题 我不想将.m2文件夹复制到docker,那里有很多依赖项,这将是相当长的时间。 我不想复制容器内的项目源 我无法运行脚本。/build/build_and_deploy.sh
我如何看待这个问题的解决方案。
- 创建一个 dockerfile,将 maven 和 java8 连接到它,然后 bash
- 使用 Volume 连接源和 maven 存储库
- 因为我是通过VPN工作,并且脚本部署了,所以需要通过它找到问题的解决方案(代理/端口转发???)
如果您有类似脚本的经验或示例或有能力的建议,那么我会很高兴听到它
【问题讨论】:
-
如果您的构建脚本在 Windows 中无法运行,可以使用 Vagrant 之类的工具来帮助您设置可以使用的 Linux VM。您可能可以使您描述的设置工作,但正如您所注意到的,它与 Docker 的设计使用方式有点不同。还有一些关于“Docker 绑定挂载不更新”和“VPN 连接在容器内部不起作用”的常见问题。我可能会修复构建脚本或使用更 Unixy 系统(Linux 或 MacOS)进行开发。
-
@DavidMaze 放置一个成熟的虚拟机听起来太负荷了。如果您有机会仔细看看,我很乐意与您联系
标签: java docker maven dockerfile