Dockerで開発環境 Julia編

今回は新しい言語にチャレンジ。Juliaの環境を作ってみる。

公式サイト:https://julialang.org/

Docker Hubには、オフィシャルのイメージも公開されている。(Debianベース)

公式サイトでは、バイナリも公開されていて、”It is strongly recommended that the official generic binaries from the downloads page be used to install Julia on Linux and FreeBSD.” ということなので、Linuxではこれを使えば良いらしい。

# wget https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.0-linux-x86_64.tar.gz
# tar xvf julia-1.1.0-linux-x86_64.tar.gz 
# ln -s julia-1.1.0/bin/julia /usr/local/bin/julia
# julia
/bin/sh: julia: not found

・・・あれ?SBCL(Common Lisp)入れたときと同じ現象が起きている。

  • https://qiita.com/MiCHiLU/items/1e80a5325b2746eaf2d4
  • https://qiita.com/skame/items/12d12fef0902d162279e

このあたりの情報によると、Alpine(というかBusyBox)のtarがしょぼくて、展開しきれてないファイルがあったりするケースや、ライブラリが足りないケースがあるらしい。

改めて、frolvlad/alpine-glibc をベースにビルド&ランしてみる。が、やっぱりnot found。

念のため、tarで展開したバイナリを直接実行してみる。・・・と、起動できた。リンクの貼り方がマズかっただけのようだ。しかし、glibc入りの方じゃないと、やっぱりnot foundになる。

ということで、最終的には下記のDockerfileとなった。

FROM frolvlad/alpine-glibc

WORKDIR /home/julia

RUN set -x && \
    wget https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.0-linux-x86_64.tar.gz &&\
    tar xvf julia-1.1.0-linux-x86_64.tar.gz && \
    cd julia-1.1.0 && \
    ln -s /home/julia/julia-1.1.0/bin/julia /usr/local/bin/julia

CMD ["/bin/sh"]

juliaもターミナルで、単に”julia”と起動すると、SBCL(Common Lisp)と似たような、プロンプト画面になる。

# julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.1.0 (2019-01-21)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> println("Hello, World")
Hello, World

julia> exit(0)

Hello worldもちゃんと実行できました。

タグ: #
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA