Ich möchte einen Container-Build eines Haskell-Stack-Projekts für die Arbeit einrichten. Ich weiß, dass stack --docker build
existiert, aber ich möchte dies nur mit docker tun, so dass meine Kollegen nicht zuerst stack
installieren müssen.Wie führe ich einen Stack-Build in einem Docker-Container aus?
ich derzeit ein Dockerfile haben, die wie folgt aussieht:
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"]
Und leite stack
wie:
stack build --stack-root=/stack --resolver=lts-8.9
Dies hat jedoch die folgenden Probleme:
- es neu erstellt alle der Abhängigkeiten jedes Mal
- es erfordert
--allow-different-users
, wie es zu sein scheint meine lokalen wiederverwenden.stack-work
, die weniger scheint als ideal
Ich habe auch nicht herausgefunden, ob es bricht nativen Stack baut, oder Dinge wie intero.
Wenn Sie Dinge in Docker zwischenspeichern möchten, benötigen Sie eine separate Zeile. https://github.com/commercialhaskell/stack/issues/694 kommt etwas näher. – Reactormonk