Gauche の実行環境を Docker で構築
はじめに
継続について勉強してみたいと思っており,継続に関する機能がアツい Scheme という言語を学んでみることにした.処理系は結構あるみたいだが,ちょうど図書館に本があったので Gauche という処理系を試してみることにした.作者が日本人らしく「ハッカーと画家」の翻訳をされた方らしい.高校生くらいのときに本屋でこの本を見つけて,絵が上手くなるのかなーと思って買った記憶がある.絵は上手くならなかったけど思想は養われた.
Docker コンテナで Gauche を実行できるように
やることはタイトル通り.Scheme の処理系の一つである Gauche を実行する環境を作る.普通にローカルマシンにインストールしてもいいし,コンテナ上で実行できるようにしてもいい.
ローカルマシンにインストールするならば公式サイトの手順に従うのが良さそう.
Docker とかはインストールされているとする.
まず,公式でも紹介されているように Gauche が入っている Docker イメージは存在している.
ただし,こちらは Gauche Makiki という Webサーバー用のライブラリも併存しているよう.自分の場合,特ににそういうのは必要なくて,gauche のインタプリタが使えれば良かったので,Dockerfile を自分で書くことにする.
といっても,公式の Docker イメージの元となっている Dockerfile があるので,これを参考に,Makiki のインストール部分を削除したり細かいところ弄ったりするだけ.
元の Dockerfile では,最初の方で apt-install
をしているが Makiki
の依存関係も入っている場合,無駄に多くインストールしていることになる.もし必要ないものがあれば消しておきたい.Gauche のインストール方法に関するドキュメントなどを参考に必要ないインストール物を取り除いておく.
FROM debian:testing
ENV gauche_version=0.9.15
RUN apt-get update && \
apt-get install -y build-essential \
libtool pkg-config curl \
openssh-client zlib1g-dev \
libmbedtls-dev ca-certificates
RUN mkdir /home/gauche
RUN cd /home/gauche && \
curl https://raw.githubusercontent.com/shirok/get-gauche/master/get-gauche.sh > get-gauche.sh && \
chmod +x get-gauche.sh && \
./get-gauche.sh --prefix /usr --version $gauche_version --auto
CMD ["/usr/bin/gosh", "-i"]
ビルド & 起動
docker build -t gauche .
docker run --rm -it gauhce
Discussion