【发布时间】:2016-09-21 08:57:34
【问题描述】:
我有一个 Docker 映像,它是 Haskell 的 Web IDE(Jupyter notebook)的服务器。
每次我想允许在 IDE 中使用库时,我都必须转到 Dockerfile 并将安装命令添加到其中,然后重建映像。
这样做的另一个缺点,我必须在 Github 上 fork 原始图像,不允许我为它做出贡献。
我正在考虑编写另一个 Dockerfile,它使用 FROM 指令提取基础文件,然后使用 RUNs 命令来安装库。但是,由于它们位于不同的层,来宾系统找不到 Haskell 包管理器命令。
TL;DR:我想从 Dockerfile 运行 stack install <library>(堆栈类似于 npm 或 pip,但用于 Haskell),但我不想拥有基础映像的分支。
我该如何解决这个问题?
【问题讨论】:
-
您使用的是哪个基础镜像?你想做的很好,但听起来基础镜像没有安装
stack(或安装它并稍后将其删除),所以你需要在你的Dockerfile中安装stack。 -
我正在使用 gibiansky/ihaskell。我检查了 dockerfile 并明确安装了它。在运行和执行堆栈时,我也 ssh 进入它,没有问题@EltonStoneman
-
是的,它在图像中。您想在 Dockerfile 中运行的
stack命令是什么? -
stack install Frames就是一个例子