gpt4 book ai didi

clojure - 使用 Docker 的 Clojure Web 应用程序的开发工作流程

转载 作者:行者123 更新时间:2023-12-02 11:57:30 24 4
gpt4 key购买 nike

我正在尝试开始使用 Docker 来使用 Clojure 开发 Web 应用程序,但不确定该走哪条路。从我到目前为止所读到的内容来看,还查看了 the offical Docker Clojure repo ,基本上有两种可能的方法:

  • 调用lein Ring服务器(以交互方式或作为Dockerfile中的CMD)或
  • 使用 Dockerfile 将您的应用程序编译为 uberjar,并在生成的 jar 文件上使用 java -jar 作为 CMD

在我看来,前者是有问题的,因为开发环境与生产环境不太接近,因为我们可能使用 :dev leiningen 配置文件添加内容在生产中绝对不希望出现这种情况(提供尽可能少的工具和“信息”,即公开的生产服务器上的代码始终是一个好主意)。然而,后者似乎有完全相反的问题:现在每次更改基本上都需要重建图像(想想编辑-编译-运行周期),所以你会失去leinring的良好重新-编译修改功能。

人们在实践中如何使用这种组合?

PS:我知道实践中可能还有其他一些操作模式(例如使用 Immutant 或 Tomcat 作为部署目标或使用 Hudson 等 CI 服务器)。我首先在这里询问最基本的设置。

最佳答案

我和我的团队选择在开发时优化快速反馈并最大程度地减少部署中的移动部件数量。因此,我们选择在开发中使用 lein Ring 服务器,并选择为我们的部署提供 uberjar。我已经通过在 Docker 容器中运行的代码完成了此操作,但没有它们。

我不想回到使用无法尽快看到更改代码的结果的开发工作流程。在我看来,快速反馈远远超过了本地机器和生产环境中运行服务略有不同的风险。

此外,没有什么可以阻止我更改几行代码,然后启动一个与我的生产设置更接近的本地服务(运行构建的 docker 镜像或在本地构建 uberjar)。

关于clojure - 使用 Docker 的 Clojure Web 应用程序的开发工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27150776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com