2

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

此外,许多说明似乎已过时或引用断开的链接和不存在的资源。使用 Dockerfile 以与 Quicklisp 等一致的方式安装它会很方便。

4

2 回答 2

1

这是基于 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

我将图像基于dparnell/minimal-sbcl,它预装了 Quicklisp。

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

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

于 2018-02-21T10:06:43.657 回答
1

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

在本教程中,我们将 Gitlab CI 与daewok/lisp-devel Docker 映像一起使用,该映像包括多个 Lisp 实现和 Quicklisp,因此我们可以(ql:quickload "cl-json")立即运行 lisp。

于 2018-02-21T10:21:08.240 回答