首页 > 解决方案 > 构建无堆栈的 docker 镜像

问题描述

我有 haskell 项目,我可以在我的 MacOS 上使用stack image build以下设置在stack.yml.

resolver: lts-11.1

packages:
- .

docker:
  enable: true
image:
  container:
    base: "gcr.io/myapp/myapp-base"
    name: "gcr.io/myapp/myapp-api"

但是,我们的 CI 服务器没有stack,它只有 docker 和 docker-compose。是否可以stack生成Dockerfile文件,这样我就可以在我们的 CI 服务器上构建一个图像而无需安装stack

标签: dockerhaskellhaskell-stack

解决方案


据我所知, Stack 没有任何命令来生成Dockerfile. 通常我自己为 CI 写一个。他们的基础镜像是stack-build。我写的 yesod 应用程序的最新 docker 文件:

FROM fpco/stack-build:lts-9.20

WORKDIR /app

COPY . /app
RUN stack build
RUN stack install

EXPOSE 3000

CMD ["stack", "exec", "twilio-demo"]

请注意,在上述方法中,docker 映像包含 Stack 构建工具。


推荐阅读