【问题标题】:Error building Haskell stack project using docker-compose使用 docker-compose 构建 Haskell 堆栈项目时出错
【发布时间】:2018-06-04 06:40:25
【问题描述】:

我正在使用堆栈开始一个新的 Haskell 项目,我想使用 docker-compose 构建和运行它,以便我可以与其他应用程序(数据库、负载均衡器等)一起运行它。

但是,我的堆栈项目未能在容器内构建。 运行 docker-compose up 后出现此错误

...
Step 6/8 : RUN stack build --dependencies-only ---> Running in 6d42f4797edd
Downloading lts-11.10 build plan ...
Downloaded lts-11.10 build plan.
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""
ERROR: Service 'be' failed to build: The command '/bin/sh -c stack build --dependencies-only' returned a non-zero code: 1 

我的项目结构是这样的

- README.md
- docker-compose.yml
/be
  - Dockerfile
  - /app
  - /src
  - be.cabal
  - stack.yaml
/fe
  - ...

我的 docker-compose.yml 看起来像

version: '3'
services:
    be:
        build: ./be
        image: be
        command: stack exec be
        ...
    fe:
      ...

我的 BE Dockerfile

FROM haskell:8.2
RUN mkdir -p /app/user
WORKDIR /app/user
COPY stack.yaml *.cabal ./

RUN export PATH=$(stack path --local-bin):$PATH
RUN stack build --dependencies-only

COPY . /app/user
RUN stack install

我的 stack.yaml

resolver: lts-11.10
packages:

我的.cabal

...
library
  hs-source-dirs:      src
  exposed-modules:     Lib
  build-depends:       base >= 4.7 && < 5
                       , aeson
  default-language:    Haskell2010

executable be
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                       , be
  default-language:    Haskell2010

我的堆栈构建在本地运行良好,所以我想我用于 Docker 容器的 Haskell 映像可能有问题?

任何建议或帮助将不胜感激。

【问题讨论】:

    标签: docker haskell docker-compose haskell-stack


    【解决方案1】:

    这与堆栈错误有关,该错误已在最近的版本中得到修复。所以,我怀疑 docker 镜像的堆栈版本太旧了。

    不幸的是,Cassava 维护者拒绝合并从标志名称中删除双连字符的补丁。但是,r

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2022-09-23
      • 1970-01-01
      • 2019-05-19
      相关资源
      最近更新 更多