わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

るりまのためのDockerfile

 「るりまのソースコード(doctree)内にDockerfileを作る」には,びっくりしました.
 Dockerfileだけがあればよく,ビルドの際に,ソースコードを取ってくればいいのでは…
 という方針で,Dockerfileを作成しました.

FROM ruby:alpine
WORKDIR /
ADD https://github.com/rurema/doctree/archive/master.zip .
RUN set -eux && \
    apk add --no-cache git && \
    gem install bundler:1.17.2 bitclust-core bitclust-dev refe2 rack && \
    unzip master.zip && \
    cd doctree-master && \
    bitclust setup && \
    bitclust statichtml -o tmp
WORKDIR /doctree-master/tmp
ENV RUREMAPORT=3000
EXPOSE $RUREMAPORT
CMD ruby -run -e httpd . -p $RUREMAPORT

 docker build -t myrurema .でビルドし*1,docker run --rm -p 3000:3000 -d myruremaで起動します.ブラウザでhttp://localhost:3030にアクセスすると,「version 2.6 対応リファレンス」のページが表示されました.test(?s,ファイル名)でファイルサイズが得られない?に書いたmodule FileTestのURLは,http://localhost:3000/class/-file-test.htmlになりました.
 Dockerfileの作成にあたり,ベースイメージ(ruby:alpine)の選択と,るりまのソースに関しては,以下のページを参照しました.

 ADDを使ってダウンロードするのであれば,git cloneは不要,だからgitコマンドのインストールはしなくていいはず,と思いながらdocker buildをすると,bitclust setupのコマンド実行でgitを要求されましたので,「apk add --no-cache git」を入れました.

*1:docker imagesの結果によると,出来上がったイメージのファイルサイズは198MBです.ベースイメージ(ruby:alpine)は52.3MBです.