如何使用haskell和stack在giitpod上预构建



我已经检查了https://github.com/gitpod-io/template-haskell并合并了一本书的样本(深入haskell)到我的分支。

预构建没有效果,每次打开工作空间都会从头开始整个构建过程。因此,对于这个项目来说,gitpod实际上是不可用的,因为我们必须等待整个构建完成,才能开始使用工作区。

我认为原因可能是,堆栈构建将构建工件存储在~/中。堆栈和该位置不是工作区的一部分,因此当工作区关闭时它将丢失。

对吗?然后,如何保持构建结果存活?

我刚刚开始使用giitpod,所以我不确定是否有更好的方法来做到这一点,但我能够非常接近我想要的预构建通过指定一个基本dockerfile通过把它放在我的gitpod.yml:

image:
file: .gitpod.Dockerfile
然后创建以 开头的.gitpod.Dockerfile
FROM gitpod/workspace-full

,然后安装ghcup,并使用它来安装我的其他依赖:

RUN curl --proto 'https' -tlsv1.2 -sSf https://downloads.haskell.org/~ghcup/x86_64-linux-ghcup > ./ghcup
RUN chmod 755 ./ghcup
RUN sudo mv ./ghcup /usr/local/bin
RUN ghcup install ghc
RUN ghcup install cabal
RUN ghcup install hls
RUN ghcup install stack
RUN sudo ln -s /home/gitpod/.ghcup/bin/stack /usr/local/bin/stack
RUN stack install ghcid

最新更新