Docker和Julia-如何让.jl文件在容器中运行

Docker和Julia-如何让.jl文件在容器中运行,docker,julia,dockerfile,Docker,Julia,Dockerfile,我和IJulia一起使用Julia v0.4.5已经有一段时间了。我现在正在尝试设置一个Docker容器,在其中可以运行.jl文件中的代码。要在容器内设置工作模式,我复制了此Dockerfile中的代码: 使用上面的命令,我可以让julia在我的终端上工作 docker run -i -t larajordan/juliatest:0.3 然后当容器打开时,我使用命令 julia 从集装箱码头打开Julia。当使用juliarepl时,我通常只执行下面的命令来运行.jl文件。但是,当我在容器

我和IJulia一起使用Julia v0.4.5已经有一段时间了。我现在正在尝试设置一个Docker容器,在其中可以运行.jl文件中的代码。要在容器内设置工作模式,我复制了此Dockerfile中的代码:

使用上面的命令,我可以让julia在我的终端上工作

docker run -i -t larajordan/juliatest:0.3
然后当容器打开时,我使用命令

julia
从集装箱码头打开Julia。当使用juliarepl时,我通常只执行下面的命令来运行.jl文件。但是,当我在容器内从juliarepl尝试此操作时,它不起作用,并给出以下错误消息

julia> include("/home/lara/SourceCode/researchhpc/wind_spacer/julia_learning/variables.jl")
ERROR: could not open file /home/lara/SourceCode/researchhpc/wind_spacer/julia_learning/variables.jl
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:320
我很确定这是因为容器正在自己内部寻找.jl文件,很明显这个文件在容器中不存在。我试图找出如何将.jl文件复制到contianer中,但似乎不起作用。我尝试的方法如下,从容器外部:

docker cp filename.jl /var/lib/docker/aufs/mnt/<full docker contianer id>/root/filename.jl
我认为,一旦我在容器中获得.jl文件,另一个问题是.jl文件使用命令“using”。这些包不会添加到Julia中,也不会在容器中提供。我必须将它们添加到容器版本的Julia中。这可以从Dockerfile中完成,如果我正在使用的文件有任何依据;似乎IJulia包是通过以下命令添加并构建在Dockerfile中的

RUN /opt/julia/bin/julia -e 'Pkg.add("IJulia")'
RUN /opt/julia/bin/julia -e 'Pkg.build("IJulia")'

对于从Dockerfile中添加包以及从容器中的Julia REPL运行或仅从容器中的终端运行.jl文件的任何帮助,我们将不胜感激。

您必须在容器中装载主机目录
试一试

然后在你的回复中运行

julia> include("/opt/julia_learning/variables.jl")

谢谢这是否意味着如果我包括包含所有包的文件夹,我可以正常使用包?我来试试。对不起,我想我们应该把它安装到julia_learning中,然后你就可以玩软件包了。我对Julia不太熟悉,但我认为主库在
/opt/Julia
中,我们不应该干预它
docker run -it -v /home/lara/SourceCode/researchhpc/wind_spacer/julia_learning:/opt/julia_learning larajordan/juliatest:0.3 
julia> include("/opt/julia_learning/variables.jl")