2017-11-12 7 views
1

かなりの量のドッカー作成スクリプトを作成し、いくつかのサービスを起動しました。私は今、JVMでドッカーの作成を制御したいと思っています。基本的にはupdown、理想的には-p <project name>というパラメータを実行したいので、同時に複数のインスタンスを生成することができます。コントロールのドッカーのJavaでの作成

これはJavaで可能ですか?

答えて

2

あなたが取ることができる2つの可能なアプローチがあるかもしれません:ネイティブドッカを使用して(OSコマンドをProcessBuilderをの助けを借りて、例えばおよび実行)

  1. を実行し、通常のコマンド実行を使用して、アップ/ダウンドッキングウィンドウは、構成
  2. SDK、現在はgolangとpythonが正式にサポートされていますが、Javaドッカークライアントはherehereです。今のところ、私はgolangでdocker SDKを使用しています。そして、ドッカーでプログラムのほとんどすべてを行うことができます。
+0

ありがとうございました! 2番目の選択肢について:私はすでに述べたこれらのSDKとサードパーティのJavaライブラリを調査しました。彼らは 'docker-compose.yml'の設定と機能をサポートしていないようです。だから、基本的に、私は 'docker-compose'の機能を自分自身で実装しなければなりません(パース、コンテナの起動、管理など)。または私はここで間違っていますか? –

+0

ええ、Docker SDKは現在ドッカーの作成をサポートしていません。ただし、現在のSDKを使用してサービスを1つずつ構成し、それらをまとめてグループ化することはできます。 dock-compose.yamlの解析と処理をすべて実装する必要はありません。 – Apolozeus

+0

私はそれを調べなければならないでしょう! –

1

Docker Composeは、他のすべてのDockerクライアントと同じDocker APIに直接通話するpythonユーティリティです。送信するコマンドについては根本的に異なるものは何もありませんが、Dockerコンテナのライフサイクルをコード内で管理しています。

Composeは、docker pythonモジュールをベースにしています。このモジュールは、別のPython Docker APIクライアントです。

Javaの場合は、here is the up methodと同じように再実装するには多分時間がかかるでしょう。たぶん、Jythonでそれを引っ張ってみてください。本当にJVMからやるか、Javaからコマンドdocker-composeを実行しなければならないのでしょうか。

+0

あなたの共有のためにありがとう、それは知っているのは良いことです。私はPython SDKを使っていたはずです:) – Apolozeus

+0

ほとんどのDockerツールはGoで書かれています。 Composeは、Dockerによって購入されてエコシステムに統合される前に* Fig *という外部ツールでした。 – Matt

1

私は別の有用なライブラリ:https://www.testcontainers.orgを見つけました。

TestContainersは、共通データベース、Selenium Webブラウザ、またはDockerコンテナで実行できるその他の軽量で使い捨てのインスタンスを提供するJUnitテストをサポートするJavaライブラリです。

関連する問題