それは良い質問ですが、残念ながら明確な回答はありません。
コンテナ内で使用されている設定システムは以下の通りです:
その README には、フックの一般的な仕組みについて説明されています。利用可能な特定のフックは、インスタンスのセットアップ方法によって異なります。主な app.yml には、1 つ以上のテンプレートが含まれています。多くの場合、その中の 1 つは web.template.yml です:
assets_precompile フックは、私がこの文章を書いている時点では [L159] で定義されています。pups のドキュメントによると、before_assets_precompile および after_assets_precompile を使用して、その完了前または後に他のコマンドを実行できます。
コマンドは Docker コンテナ内で実行されるため、それを行うための特別な手順は不要です。
cd: ディレクティブは /var/www/discourse/public/assets/ に直接指し示すことができ、cmd の各行はそのディレクトリから実行されます。(注意:cmd 配列内の各行は、Makefile のように個別のシェルで実行されます)。
/var/www/discourse/public/assets/ の内容がビルド間で永続化されるかどうかはわかりません。そのため、毎回ローカルの Git リポジトリを作成して強制プッシュする必要があるかもしれません。より「正しい」解決策としては、app.yml でアセットディレクトリ用の Docker ボリュームを定義し、それを app.yml で定義された他のボリュームと同様にコンテナ外で永続化することかもしれません(例参照)。