在Docker镜像中安装Quicklisp库

时间:2018-02-20 15:41:26

标签: docker common-lisp gnu-common-lisp ansi-common-lisp

是否有用于在Docker上安装cl-json(或其他Quicklisp库)的Dockerfile?我见过的大多数安装说明都要求用户输入没有--noinput标志的命令,这使得很难通过Dockerfile安装。

此外,许多说明显示已过期或引用断开的链接和不存在的资源。使用Dockerfile以一致的方式安装它是很方便的。 Quicklisp。

2 个答案:

答案 0 :(得分:2)

这是一个基于SBCL的应用程序的Dockerfile。

FROM dparnell/minimal-sbcl
RUN sbcl --noinform \
         --disable-ldb \
         --lose-on-corruption \
         --eval "(ql:quickload '(buildapp))" \
         --eval '(buildapp:build-buildapp "/bin/buildapp")'

RUN buildapp --load /opt/quicklisp/setup.lisp \
             --eval "(ql:quickload '(cl-json))" \
             --output bin/executable

CMD executable

我的图像基于预装了Quicklisp的dparnell/minimal-sbcl上的图片。

然后我运行一次SBCL来构建buildapp(这可能是一个单独的泊坞窗图像)。

然后,我运行buildapp,加载quicklisp/setup.lisp并安装cl-json。您可以使用quickload加载任意数量的依赖项,但我建议您定义自己的system.asd文件并在那里列出依赖项。

答案 1 :(得分:2)

https://lispcookbook.github.io/cl-cookbook/testing.html#continuous-integration

在本教程中,我们使用Gitlab CI和daewok/lisp-devel Docker镜像,其中包含多个Lisp实现和Quicklisp,因此我们可以立即运行lisp和(ql:quickload "cl-json")