在 Docker 图像中安装 Quicklisp 库
Installing Quicklisp libraries in a Docker image
在 Docker 上是否有用于安装 cl-json(或其他 Quicklisp 库)的 Docker 文件?我见过的大多数安装说明都要求用户输入没有 --noinput 标志的命令,因此很难通过 Docker 文件进行安装。
此外,许多说明似乎已过时或引用了损坏的链接和不存在的资源。使用 Docker 文件以与例如一致的方式安装它会很方便。速记
这是基于 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 pre-installed。
然后我 运行 SBCL 一次构建 buildapp
(可能是一个单独的 docker 图像)。
然后,我运行buildapp
,加载quicklisp/setup.lisp
并安装cl-json
。您可以使用快速加载加载任意数量的依赖项,但我建议定义您自己的 system.asd
文件并在其中列出依赖项。
https://lispcookbook.github.io/cl-cookbook/testing.html#continuous-integration
在本教程中,我们将 Gitlab CI 与包含多个 Lisp 实现和 Quicklisp 的 daewok/lisp-devel Docker 图像一起使用,因此我们可以 运行 一个 lisp 和 (ql:quickload "cl-json")
马上。
在 Docker 上是否有用于安装 cl-json(或其他 Quicklisp 库)的 Docker 文件?我见过的大多数安装说明都要求用户输入没有 --noinput 标志的命令,因此很难通过 Docker 文件进行安装。
此外,许多说明似乎已过时或引用了损坏的链接和不存在的资源。使用 Docker 文件以与例如一致的方式安装它会很方便。速记
这是基于 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 pre-installed。
然后我 运行 SBCL 一次构建 buildapp
(可能是一个单独的 docker 图像)。
然后,我运行buildapp
,加载quicklisp/setup.lisp
并安装cl-json
。您可以使用快速加载加载任意数量的依赖项,但我建议定义您自己的 system.asd
文件并在其中列出依赖项。
https://lispcookbook.github.io/cl-cookbook/testing.html#continuous-integration
在本教程中,我们将 Gitlab CI 与包含多个 Lisp 实现和 Quicklisp 的 daewok/lisp-devel Docker 图像一起使用,因此我们可以 运行 一个 lisp 和 (ql:quickload "cl-json")
马上。