0

使用以下 Dockerfile

FROM fpco/stack-build:lts-17.12 as dependencies

ENV STACK_ROOT /home/stackage/.stack

COPY ./stack.yaml ./package.yaml ./

RUN stack build --dependencies-only

Stack 将始终在构建之前从头开始下载和安装 GHC。

> [dependencies 5/7] RUN stack build --dependencies-only                                                                     2.8s
 => => # Preparing to install GHC to an isolated location.                                                                                               
 => => # This will not interfere with any system-level installation.                                                                                     
 => => # Preparing to download ghc-8.10.4 ...                                                                                                            
 => => # ghc-8.10.4: download has begun   
 => => # ...

我已经为STACK_ROOT环境变量尝试了不同的值(包括无,保留默认值),但没有一个起作用。

现在,如果我注释掉该RUN stack build行并拉取图像,然后在其中运行一个 shell,我可以看到 GHC 和 Stack 已经预安装在/home/stackage/.stackLinux 二进制文件中。

尽管如此,Stack 为何总是选择从头开始下载和安装所有内容?有没有办法避免它?

编辑:这个答案似乎表明 usingSTACK_ROOT=/home/stackage/.stack会起作用,但显然它不会 - 也许我错过了什么?

4

0 回答 0