2016-06-01 8 views
2

私はJulia v0.4.5をIjuliaと一緒に使っています。私は今、自分の.jlファイルの1つでコードを実行できるDockerコンテナを設定しようとしています。 https://hub.docker.com/r/julialang/julia/~/dockerfile/DockerとJulia - .jlファイルをコンテナ内で実行する方法

私は、コンテナが開くとジュリアは、コマンド、その後

docker run -i -t larajordan/juliatest:0.3 

として、私の端末から仕事を得る上での使用:私はこのDockerfileのコードをコピーして、コンテナ内部の作業ジュリアを設定するには私は、コンテナのターミナルからジュリアを開くには、

julia 

を使用します。 Julia REPLを使用するときは、通常、以下のコマンドを実行して.jlファイルを実行します。しかし、コンテナ内のjulia 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にコピーする方法を見つけようとしましたが、うまくいかないようです。私はエラー

cp: cannot create regular file ‘/var/lib/docker/devicemapper/mnt/a2c36e7f6f08c345a668550974a575384b5a3d465f411d3589bd5a6ac0fad13d/rootfs/root’: No such file or directory 

に私は私がコンテナ内.jlファイルを得れば、問題の原因となると思うもう一つの取得

docker cp filename.jl /var/lib/docker/aufs/mnt/<full docker contianer id>/root/filename.jl 

:私が試してみました方法は、容器の外側から、次のようです.jlファイルが 'using'コマンドを使用していることです。これらのパッケージはJuliaに追加されず、コンテナ内でも使用できません。 Juliaのコンテナ版に追加する必要があります。私が使用しているものがあればDockerfileからこれを行うことができます。 IJuliaパッケージがDockerファイル内に以下のコマンドで追加されて構築されているようです。

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

Dockerfile内から追加したパッケージを取得し、また、容器の内部ジュリアREPLから実行するか、単にコンテナ内の端末から実行する.jlファイルを取得する上の任意の助けいただければ幸いです。あなたは、コンテナhttps://docs.docker.com/engine/userguide/containers/dockervolumes/#mount-a-host-directory-as-a-data-volume
でホストディレクトリをマウントする必要が

答えて

2

はあなたのREPLで

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

感謝を実行し

docker run -it -v /home/lara/SourceCode/researchhpc/wind_spacer/julia_learning:/opt/julia_learning larajordan/juliatest:0.3 

を試してみてください。それは、すべてのパッケージを含むフォルダを含めると、通常はパッケージを使用できるということですか?私はそれを試してみましょう。 – lara

+0

申し訳ありません、私は 'julia_learning'にマウントする必要があると思います。パッケージで遊ぶことができます。私はジュリアに精通しているわけではありませんが、主なlibは '/ opt/julia'にあると思います。私たちはそれを妨害すべきではありません – vitr

関連する問題