我正在尝试使用Docker开发一个Clojure Web应用程序,但不确定该如何开始。从我迄今所读的内容以及查看官方Docker Clojure repo的链接来看,基本上有两种可能的方式:
人们在实践中如何使用这种组合?
PS: 我知道实际上可能还有其他操作模式(例如,将Immutant或Tomcat用作部署目标,或使用类似Hudson的CI服务器等)。我先问最基本的设置。
- 调用
lein ring server
(交互式地或作为Dockerfile中的CMD) - 使用Dockerfile将您的应用程序编译为uberjar,并在生成的jar文件上使用
java -jar
作为CMD。
:dev
leiningen配置文件添加一些严格不想要的东西到生产环境中(提供尽可能少的工具和"信息",即在公开的生产服务器上的代码总是一个好主意)。然而,后者似乎正好相反:现在每个更改基本上都需要重新构建镜像(编辑-编译-运行循环),因此你将失去lein ring
在修改功能上的良好重新编译的功能。人们在实践中如何使用这种组合?
PS: 我知道实际上可能还有其他操作模式(例如,将Immutant或Tomcat用作部署目标,或使用类似Hudson的CI服务器等)。我先问最基本的设置。