【问题标题】:Install dependencies in container using deps.edn使用 deps.edn 在容器中安装依赖项
【发布时间】:2021-09-13 23:26:24
【问题描述】:

我继承了一个 clojure 代码库,并尝试将其容器化以用于本地开发。创建者使用deps.edn 来管理依赖项。但是,我不知道应该使用什么 RUN 命令来预安装项目的依赖项。

目前,我的入口点是以下['clj', '-m', 'app'],它会在我每次启动容器时安装依赖项。

如何使用 Docker RUN 命令为 clojure 项目预安装依赖项?

【问题讨论】:

    标签: docker clojure


    【解决方案1】:

    Deps/CLI 缓存 is described here。一般来说,依赖下载一次,并保存在项目目录的子目录中,名为

    ./.cpcache  # "class path cache"
    

    ./.cpcache 目录类似于 Maven 和相关工具(例如 Leiningen)使用的 ~/.m2 缓存目录。

    如果您在本地运行代码,您应该能够将 .cpcache 目录及其缓存的依赖项复制到您的 Docker 容器中。然后依赖项不需要重新下载 每次启动 Docker 容器。

    另见the Deps/CLI overview


    附言

    This template project 设置为通过 Kaocha 工具同时使用 lein 和 Deps/CLI 运行。您可能会发现比较很有帮助。


    附言

    您可能会发现通过构建一个包含所有代码全部的 uberjar 文件来运行您的代码是最简单的方法 单个工件中的依赖项。您可以使用 Leiningen 或其他工具(例如 depstar)来执行此操作。然后,您可以使用单个命令调用应用程序,例如:

    java -jar demo-0.1.0-standalone.jar
    

    【讨论】:

      【解决方案2】:

      运行这个应该可以做到:

      clj -P
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-03
        • 2021-05-22
        • 2019-02-14
        • 1970-01-01
        • 2016-03-16
        • 2021-08-14
        • 2016-07-26
        • 2019-04-29
        相关资源
        最近更新 更多