【发布时间】:2019-11-03 14:23:04
【问题描述】:
我想就标题中提到的堆栈应用程序的开发工作流程提出一些建议。在我改用 Docker 之前,我所要做的就是:
- 去start.spring.io下载project starter
- 将其导入 intelliJ
- 开发功能,点击绿色箭头启动应用程序或红色方块停止并在每次更改代码时重复它
现在,当我切换到 docker 时,在第 2 步之后,我会这样做:
- 创建 Dockerfile 和 docker-compose.yml(我在这里启动我的应用程序和 mysql 服务)。
- 右键单击 docker-compose 并点击运行。然后它构建我的应用程序映像(我在运行配置中使用 --build 标志,因此每次我在 docker-compose 上运行时它都会构建映像)并启动两个服务:app 和 mysql,一切正常。
问题是当我在我的代码中更改某事时,我必须:
- 手动执行 mvn clean 和安装步骤,在 /target 文件夹下生成新的 jar
- 然后停止之前的 docker compose 并再次运行它。然后它根据 /target 中的内容构建新图像
我更喜欢一键式解决方案,就像我开始使用 docker 之前那样。因此,当我更改代码时,只需按一个按钮,就会生成新图像并在应用所有更改的情况下运行。是否可以?我错过了什么吗?你能告诉我你的工作流程是否和我的相似吗?也许您可以推荐一些工具或不同的配置?
【问题讨论】:
-
你为什么不创建一个脚本?
-
你不需要做
mvn clean install,只需mvn clean package就足够了。问题是你为什么使用 Docker?真的需要吗?只需在您的 IDE 中运行代码运行测试等? CI 解决方案使用mvn clean deploy在我们的存储库管理器中发布工件(如果需要,我们可能会生成一个 docker 映像)......但我不在本地这样做......很少......
标签: java maven docker intellij-idea docker-compose