2017-04-12 17 views
1

新しいWindows 10開発マシンをセットアップしました。インストールの手間を最小限に抑えました。私は様々なdev依存関係(Oracle、MongoDB、RabbitMQ、HAProxyなど)ドッカーの作成スクリプトを使用してDockerの下で実行します。Windowsのログオン時にドッキング・コンテナを起動する

Windowsのログオン時にこれらのコンテナを自動的に起動したいのですが、これを行う方法がわかりません。正しいディレクトリにdocker-compose up -dを実行する単純なスクリプトがそれを実行するはずですが、ログオン時にすぐに実行される場合、Dockerはまだ起動していないのでスクリプトは失敗します。ドッカーが実行されるまで誰かがプログラム的に待つ方法を知っていますか?

+0

ノードとしてdevマシンのみでswarmを初期化し、次に1つのレプリカでサービスを宣言することはできません。そうすれば、Dockerは自動的に少なくとも1つのコンテナの可用性を維持します。これは再起動後も有効です。 – WillemdeKok

答えて

0

これは、restartを使用してドッカー製作で実現するのは本当に簡単です。次のようにコンファイルを変更しました:

version: '2' 
    services: 
     rabbitmq: 
      image: rabbitmq:3.6-management 
      ports: 
       - "5672:5672" 
       - "15672:15672" 
      volumes: 
       - /var/lib/rabbitmq 
      restart: unless-stopped 

この余分restartディレクティブはコンテナない限り、明示的にログオン/再起動時にドッキングウィンドウで起動します停止していることを意味します。テストして作業しています!

1

私のコメントをさらに詳しく説明するために、ウェブサーバーサービスで少しテストを行いましたが、動作させる方法を設定する限り、どのサービスでも動作するはずです。

次のコマンドを使用してこれを設定するのはとても簡単

その:

docker swarm init

そして、例えばWebサーバ

docker service create --name webserver --publish 80:80 httpd

あるいはデータベース

docker service create --replicas 1 --name database --publish 1433:1433 -e "ACCEPT_EULA=y" -e "SA_PASSWORD=test" microsoft/mssql-server-linux

これらは再起動後に再起動し、Docker swarmがあなたのために保持しているレプリカの要求量(デフォルトでは1)のため、自動的に致命的なクラッシュが発生します。

うまくいけば、これはいくつかの助けになるかもしれません!

+0

私はこれがうまくいくと確信していますが、私は実際にスウォームを導入せずにこれを行う方法を考え出しました。他の答えを見てください... –

関連する問題