我已经检查了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