【问题标题】:How to use Haskell Stack with Docker Compose?如何在 Docker Compose 中使用 Haskell Stack?
【发布时间】:2017-09-17 15:54:24
【问题描述】:

我正在尝试使用 docker compose 将一些 haskell 服务捆绑在一起以进行本地开发。大多数时候,我在stack ghci 中搞乱,运行单元测试等,但我还需要能够运行遇到依赖项的代码。 Docker compose 非常适合:我可以运行依赖项(数据库、其他服务等),并将所有内容链接在一起。

Stack 支持 docker。它可以用docker: enable: true构建一个docker容器,也可以用stack image container创建一个可执行镜像。

如何在docker-compose.yml 中利用堆栈的 docker 功能?

version: "3"

services:

  my-service:

    # how can I use `stack image container` here? Is it possible?
    build: '.'

    links:
    - other-service

    env_file:
    - test.env

  other-service:
    image: other-service-image

我是否必须制作自己的 Dockerfile,或者有什么方法可以使用 stack image container 功能?

后续问题:有没有办法使用 docker compose 文件中的所有设置(环境、链接等)运行 stack ghci

【问题讨论】:

  • 据我所知,stack 的 docker 集成并不能很好地与 docker-compose 配合使用(还没有?),但请查看servant-docker stack 模板,了解使用 stack + docker- 的示例撰写。它不使用堆栈的 docker 集成,但对我来说还不错..
  • 如果有帮助,这里是我的一个示例项目:github.com/chrissound/ArchCompareTryCatchDeploy

标签: haskell docker docker-compose microservices haskell-stack


【解决方案1】:

这只会回答您的后续问题(在 docker 中堆栈 ghci)。是的,这是可能的。

取决于您的服务/容器的名称(您可以使用docker ps 确定):

如果您的容器已经在运行(通过docker-compose up / docker run):

docker exec -it directoryName_my-service_1 /bin/stack ghci

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多