1

ポート(-p 5000:5000)を介してネットワーク上に公開されているサービスを作成する場合、ドッカーはあらゆる種類のヘルプを提供します(例:docker-compose)。
私が探しているのは、特定のバイナリアプリケーションをドッカーコンテナのサービスとして提供する方法です。例としては、次のようになります。ドッカー環境でコマンドラインアプリケーションを使用する最も良い方法は何ですか?

  • コンパイラ(例えばGCC)
  • ジェネレータ(プロトコルバッファ用など)
  • ...

が私の現在のアプローチはにある単一のコマンドを実行していますパラメータを渡す小さなシェルスクリプトを持っていて、現在のディレクトリをマッピングするのを手伝ってください:

今、私はどのように行う、のは、私が Nようなサービスを持っているとしましょう複数のコマンドに

を構成

g++ --version 

:ローカルで実行しているに比べ

runbox "g++ --version" 

:それはこのようになります使用して210

は、それらのすべてが別のコンテナ(例。 CIで走っている)?多くの場合、非常にコマンドを呼び出すのオーバーヘッドについて

       Services running 
          in Docker containers 
+---------------------+ 
|      |  +---------+ 
| CI Docker Container +-----> | gcc | 
|      |  +---------+ 
|      | 
|  make   +-----> +---------+ 
|      |  | protoc | 
|      |  +---------+ 
+----------------+----+ 
       |   +---------+ 
       +----------> | clang | 
           +---------+ 

何?

答えて

0

CIが(ソケットまたはポート経由で)ドッカーエンジンにアクセスできる限り、それがコンテナ内で実行されているかどうかは関係ありません。

コンテナからプロジェクトを作成して実行している場合は、dobiに興味があります。あなたが描いているようなものになるように設計されたツールです。プロジェクトを構築するために使用するイメージ、コンテナ、マウントなどを定義します。

makeターゲット(dobi <taskname>)を実行するように、各タスクを実行できます。あなたはgcc、protoc、clangなどのために1つのタスクを持つことができます。

関連する問題