10

私は現在、Docker コンテナー内に Akka クラスターを維持する分散グラフ処理プラットフォームに取り組んでおり、最近、これをテストするために大規模なクラスターへのアクセスが許可されました。残念ながら、このクラスターは docker を実行せず、singularity のみを実行します。

シンギュラリティが docker イメージをサポートしているため、これは最初は問題に見えませんでしたが、Akka クラスターの性質上、いくつかの環境変数を過ぎて、いくつかのポートをバインドする必要があります。例として、システム内の「パーティション マネージャー」は次のコマンドで実行されます。

docker run -p $PM0Port:2551  --rm -e "HOST_IP=$IP" -e "HOST_PORT=$PM0Port" -v $entityLogs:/logs/entityLogs $Image partitionManager $PM0ID $NumberOfPartitions $ZooKeeper

Singularity のドキュメントを見ると、「Singularity」ファイルを作成して環境変数を指定できることがわかりますが、カスタム ポートのバインドに関するドキュメントはないようです。また、デフォルトのエントリポイントに引数を渡す方法についても説明していません (プロジェクトは 'sbt docker:publish' でコンパイルされているため、再割り当てする場所が正確にはわかりません)。

これが解決策であったとしても、複数のアクター タイプ (およびそれぞれの複数のインスタンス) があるため、ドキュメントで環境変数とポートを指定するには、テンプレートを作成し、実行時にファイルを作成し、個々のアクターごとにイメージを構築する必要があるようです。

このdockerコマンドを同等の特異点にうまく変換するページをどこかで完全に見逃したと確信していますが、それを見つけることができません.

4

1 に答える 1