2017-04-20 71 views
3

我正在嘗試使用docker組合來爲本地開發綁定一些haskell服務。大部分時間我在stack ghci中亂搞,運行單元測試等,但我也需要能夠運行符合依賴關係的代碼。 Docker撰寫非常適合:我可以運行依賴項(數據庫,其他服務等),並將所有內容鏈接在一起。如何使用Haskell Stack和Docker Compose?

堆棧有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功能?

後續問題:是否有某種方法可以運行stack ghci以及來自Docker撰寫文件的所有設置(env,鏈接等)?

+0

至於我知道,堆棧的docker集成與docker-compose(還沒有?)很好地協作,但請看一下使用stack + docker-compose的示例的servant-docker堆棧模板。它不使用堆棧的docker集成,但對我來說工作還行。 – Erik

+0

如果有幫助,這裏是我的示例項目:https://github.com/chrissound/ArchCompareTryCatchDeploy –

回答

1

這隻會回答你的後續問題(在docker中堆棧ghci)。是的,這是可能的。

根據你的服務/容器被命名爲(你可以判斷這與docker ps):

如果您的容器已經運行(通過docker-compose up/docker run):

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