2017-04-20 11 views
3

私はローカル開発のためにいくつかのhaskellサービスを結びつけるためにdocker composeを使用しようとしています。ほとんどの場合私はstack ghciで動作していますが、単体テストなどを実行していますが、依存関係にあるコードを実行する必要があります。 Dockerの作成はこれには最適です:私は依存関係(データベース、他のサービスなど)を実行し、すべてをリンクさせることができます。Docker ComposeでHaskell Stackを使用するには?

スタックにはドッカーのサポートがあります。これはdocker: enable: trueのドッカーコンテナに構築でき、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機能を使用するにはいくつかの方法がありますか?

フォローアップの質問:ドッカーの作成ファイルからすべての設定(env、リンクなど)を使用してstack ghciを実行する方法はありますか?

+0

限り、あなたのサービス/コンテナは、(あなたがdocker psでこれを決定することができます)と命名されているものによっては

私は、スタックのドッカーの統合がドッカーの作成(まだですか?)ではうまくいきませんが、スタック+ドッカーの作成を使用する例については、サーバントドッカーのスタックテンプレートを見てください。スタックのドッカーの統合を使用していませんが、私にとってはうまくいっています。 – Erik

+0

ここでは、参考になるプロジェクトがあります:https://github.com/chrissound/ArchCompareTryCatchDeploy –

答えて

1

これはあなたのフォローアップの質問(ドッキングステーション内のghciスタック)にのみ回答します。はい、可能です。あなたのコンテナがすでに(docker-compose up/docker runを経由して)実行されている場合

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

関連する問題