如何在Docker Compose中使用Haskell Stack?

时间:2017-04-20 20:25:35

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

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

Stack支持docker。它可以在docker: enable: true的docker容器中构建,也可以使用stack image container创建可执行映像。

如何在docker-compose.yml内利用堆栈的泊坞窗功能?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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