将来の Delphi Web プロジェクトのために、さまざまな展開シナリオのプロトタイプを作成しています。そして、次世代キラー アプリ (...) を構築するため、バックエンド API データスナップ サーバー用の Docker コンテナーのクラウド展開を調査しました。
私は docker 全般に慣れておらず、Linux にも比較的慣れていないため、簡単ではありませんでした。
しかし、私は Delphi 11 alexandria と互換性のある PAServer イメージを構築し、シンプルなアプリをローカルの Docker デスクトップ環境に展開することができました (残念ながら、現在の radstudio/paserver Docker ハブ イメージは 10.4.x のみのバージョンであるため、クリックして実行することはできません...)。
ただし、デフォルトの Delphi Datasnap Webbroker サーバーを (コンソール アプリケーションとして) デプロイすると、プログラムはコマンド ラインに戻り、「開始」命令を待ちます。
つまり、docker CLI 内で対話的にそのプログラムのコマンドラインにアクセスして、その「開始」命令を入力することに成功しませんでした (または、PAServer コマンドラインにアクセスして、同じ問題の冗長セッションをトリガーするなど)。はい、デフォルトでサーバーを起動して問題を「修正」できますが、遅かれ早かれこれを利用できるようにする必要がありますか?
実行中のプロセスにアクセスするために 1 つの (一般的な) 提案 ( get-apt install reptyr / reptyr PID ) を試しましたが、エラーが返され、Linux/Docker の初心者なので、それ以上のアイデアはありません。
(参考までに、Windows へのデプロイでは、入力できるコマンド ライン ウィンドウが開きます)
# reptyr 83
[-] Timed out waiting for child stop.
Unable to attach to pid 83: Operation not permitted
#
(また、IDE セッション 'プロジェクトで発生した例外クラス停止 (ユーザー)(18)' で例外が発生しますが、セッションは続行できます)