我应该如何在 Docker 容器中持久保存 Julia 包

use*_*169 7 containers package persistent-storage julia docker

我在树莓派 4 上运行 Julia。对于我正在做的事情,我需要 Julia 1.5,幸运的是这里有一个 docker 镜像: https: //github.com/Julia-Embedded/jlcross

我的挑战是,因为这是一个正在进行的开发,我发现自己在工作时到处添加软件包。持久保存更新环境的最佳方法是什么?

这是我的问题:

  1. 我很难集中注意力在卷上,这些卷将从 Julia 的包管理器中保存包并在下次运行容器时保留它们

  2. 每次安装软件包时都以某种方式提交我的 docker 容器似乎很笨拙。

是否就最佳方法达成共识,或者也许有另一种方法来做我想做的事情?

ffe*_*tte 4

/home/your_user/.julia您可以通过将专用卷安装到容器内部来保留下载和预编译包的状态:

$ docker run --mount source=dot-julia,target=/home/your_user/.julia [OTHER_OPTIONS]
Run Code Online (Sandbox Code Playgroud)

根据 Julia 在容器内运行的方式(以及由哪个用户),您可能需要调整上面的目标路径以指向 Julia 的第一个条目DEPOT_PATH

您可以通过环境变量自行设置来控制该路径JULIA_DEPOT_PATH。或者,您可以通过在容器中的 Julia REPL 中运行以下命令来检查它是否位于非标准位置:

julia> println(first(DEPOT_PATH))
/home/francois/.julia
Run Code Online (Sandbox Code Playgroud)