2016-09-05 18 views
0

起動しません。ドッキングウィンドウに、これは私がこれまで試したものです:ドッキングウィンドウ-COMPOSEは、私は2枚の画像 を起動するためにドッカ - コンを使用しようとしている

をここに私のドッキングウィンドウ-compose.yml

version: '2' 
services: 
    cassandra-srv: 
    image: cassandra:latest 
    ports: 
    - "7000:7000" 
    - "7001:7001" 
    - "9042:9042" 
    - "7199:7199" 
    - "9160:9160" 
    container_name: cassandra-srv 
    cqlsh: 
    build: cassandra-build 
    image: cassandra:mycqlsh 
    links: 
    - cassandra-srv 
    container_name: cassandra-client 
    depends_on: 
    - cassandra-srv 
    entrypoint: /usr/local/bin/wait-for-it.sh cassandra-srv:9042 && cqlsh 

だここでの考え方は、私は2つのサービスが定義されていることです。ローカルマシンと他のドッカーイメージの両方に、必要以上のポートを開いています。サーバーが起動し、起動時にクライアントが小さなユーティリティスクリプトを使用してサーバーが完全に起動するのを待ってから、対話シェルにジャンプします。基本カサンドラの画像がこのDockerfileを経由して微調整されていることを行うために:

FROM cassandra 
MAINTAINER [email protected] 
ENV container docker 
WORKDIR /tmp 

ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /usr/local/bin 
RUN chmod +x /usr/local/bin/wait-for-it.sh 

しかし、私は *直接のコマンドを実行して、うまく *を起動し、同じ画像が、まっすぐcqlshにそのカサンドラ・イメージを起動することができながら、ドッカーの呼び出し *洗練されたドッカー画像を作成する

私はできないのは、単にクライアントイメージを構築し、サーバを起動し、待ってからシェルにジャンプすると予想していた "docker-compose run cqlsh"を実行することです。

ドッカーの知識の欠如が原因だと思いますが、誰もこの初心者のためにいくつかのヒントを提供していますか? ;-)

ありがとう ナイジェル。

+0

なぜ、別のコンテナでcqlshを実行するのですか? –

答えて

0

私は

docker-compose up 

私自身の初心者の質問にお答えします、クライアントと上記の定義、特定のサーバ、および

entrypoint: /usr/local/bin/wait-for-it.sh -t 300 cassandra-srv:9042 -- cqlsh cassandra-srv 9042 
に変更する必要がさらにエントリポイントラインの両方を起動するのに十分です

を使用してタイムアウトを延長し、ラッパースクリプト自身がSQLインタプリタを起動するようにします

実際にはこれは動作しません.cqlshコンテナ端末が接続されていないので終了します。ドッカーを使用して "run"コマンドを実行すると、より良いオプションが得られます。

docker-compose run cqlsh cqlsh localhost 9042 
関連する問題

 関連する問題