gpt4 book ai didi

haskell - Docker + Yesod链接失败

转载 作者:行者123 更新时间:2023-12-02 19:42:49 26 4
gpt4 key购买 nike

我正在尝试制作Dockerized Yesod应用程序,并且已经在./my-app目录下初始化了Yesod项目。我的Dockerfile如下:

FROM haskell:7.8

RUN apt-get update && apt-get install -y libpq5 libpq-dev
RUN cabal update

ADD my-app /opt/my-app

WORKDIR /opt/my-app

RUN cabal sandbox delete
RUN cabal sandbox init
RUN cabal install -j --only-dependencies
RUN cabal build

RUN dist/build/db-import/db-import

EXPOSE 3000

CMD ["dist/build/my-app/my-app", "production", "-p", "3000"]

当我实际运行docker时,它能够构建所有依赖项,但是出现链接器错误:
/opt/my-app/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.4/cryptonite-0.3/libHScryptonite-0.3.a(generic.o):(.data+0x0): multiple definition of `gmtab'
/opt/my-app/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.4/cipher-aes-0.2.10/libHScipher-aes-0.2.10.a(aes_generic.o):(.data+0x0): first defined here
collect2: error: ld returned 1 exit status

我不完全确定该怎么做,因为我已经使用 haskell:latesthaskell:7.10尝试了此操作,但最终仍然遇到相同的错误。我不确定特定的容器操作系统是否是Ubuntu。我很想听听有关此事的建议。

谢谢!

最佳答案

就像@MichaelSnoyman所说的那样,摆弄堆栈并把yesod-static的cabal文件依赖项更改为== 1.5.0即可构建容器。

关于haskell - Docker + Yesod链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30954365/

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