我一直在使用Julia v0.4.5一段時間,現在還有IJulia。我現在正在嘗試設置一個Docker容器,我可以在其中一個.jl文件中運行代碼。要建立工作朱莉婭容器內我抄在這Dockerfile代碼:https://hub.docker.com/r/julialang/julia/~/dockerfile/Docker和Julia - 如何讓.jl文件在容器中運行
使用上面我得到朱麗婭從我的終端用命令
docker run -i -t larajordan/juliatest:0.3
,然後工作容器打開時我使用命令
julia
從集裝箱碼頭打開Julia。當使用Julia REPL時,我通常只執行下面的命令來運行.jl文件。當我從容器內的茱莉亞REPL嘗試此操作時,它不起作用,並提供以下錯誤消息。
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
我得到的錯誤
cp: cannot create regular file ‘/var/lib/docker/devicemapper/mnt/a2c36e7f6f08c345a668550974a575384b5a3d465f411d3589bd5a6ac0fad13d/rootfs/root’: No such file or directory
我想另一件事會引起一個問題,一旦我得到容器內的.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中添加的包,也越來越.jl文件從朱莉婭REPL一個容器內運行,或者只是從容器內的終端中運行任何幫助,將不勝感激。
謝謝運行。這是否意味着如果我包含包含所有包的文件夾,那麼我可以正常使用包?我會試一試。 – lara
對不起,我想我們應該將它掛載到'julia_learning'中,然後你可以玩包。我對Julia並不熟悉,但我認爲主要的lib在'/ opt/julia'中,我們不應該干涉它 – vitr