gpt4 book ai didi

haskell - 如何在 Docker 容器中运行堆栈构建?

转载 作者:行者123 更新时间:2023-12-04 13:08:45 24 4
gpt4 key购买 nike

我想为工作建立一个 Haskell 堆栈项目的容器化构建。我知道stack --docker build存在,但我想只用 docker 来做,所以我的同事不需要先安装 stack .

我目前有一个看起来像这样的 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 ,这似乎不太理想

  • 我还没有弄清楚它是否会破坏 native 堆栈构建,或者诸如 intero 之类的东西。

    最佳答案

    我通常把 volumes附带的 docker-compose.yml 中的部分将挂载 .stack-work 的文件目录到容器中。然后在 ENTRYPOINT 中引用的脚本中的Dockerfile , 使用 stack install而不是 stack build .

    我的 docker-compose.yml文件可能看起来像这样,其中 backend文件夹包含我的本地 .stack-work目录:

    version: "2"
    services:
    backend:
    build: ./docker-containers/backend
    tty: true
    stdin_open: true
    volumes:
    - ./backend:/home/dev/backend
    - ./.local:/root/.local

    关于haskell - 如何在 Docker 容器中运行堆栈构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43434680/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com