我想爲工作建立一個Haskell堆棧項目的容器化版本。我知道stack --docker build
存在,但我只想用docker來做這件事,所以我的同事不需要先安裝stack
。如何在Docker容器中運行堆棧構建?
我現在有一個Dockerfile看起來像:
FROM fpco/stack-build:lts-8.9
RUN mkdir -p /stack && stack --stack-root /stack setup --resolver lts-8.9
COPY build.sh/
ENTRYPOINT ["/build.sh"]
而且正在運行stack
爲:
stack build --stack-root=/stack --resolver=lts-8.9
然而,這具有以下問題:
- 它重建所有每次依賴關係
- 它需要
--allow-different-users
,因爲它似乎被重新使用我的本地.stack-work
,這似乎不太理想
我還沒有想出是否會打破本機堆棧版本,或之類的東西關於Interotube。
如果你想在docker中緩存東西,你需要一個單獨的行。 https://github.com/commercialhaskell/stack/issues/694有些接近。 – Reactormonk