問題
Docker イメージをビルドしているので、タスク「gradle buildDockerImage」を実行してイメージをビルドします。
以下の点についてお知らせください。
ワークスペースの「起動前」スクリプトはどこに配置する必要がありますか?
共通または特定の環境フォルダーにフォルダーを作成しようとしましたが、スクリプトが /usr/local/liferay/pre-startup に表示されません
Environment
- Liferay ワークスペースを備えた Liferay 7.3
解決策
以下のルート内にスクリプトを配置する必要があります。
${LR_WORKSPACE_HOME}/configs/docker/scripts
サンプルスクリプト
docker イメージの実行時に実行される
ただし、ワークスペースに配置されたスクリプト:
${LR_WORKSPACE_HOME}/configs/docker/scripts
イメージをビルドする前に、次の場所にコピーされます。
/home/liferay/configs/local/scripts
イメージの作成時、およびイメージのコピー先のコンテナーの起動時に
/mnt/liferay/scripts
ログに見られるように:
[LIFERAY] Copying /home/liferay/configs/local/scripts scripts files:
/home/liferay/configs/local/scripts
└── my_custom_script.sh
[LIFERAY] ... into /mnt/liferay/scripts
ただし、これらのスクリプトは、公式ドキュメント 記載されているように、Liferay DXP が開始する前にのみ実行されます
[LIFERAY] Executing scripts in /mnt/liferay/scripts:
[LIFERAY] Executing my_custom_script.sh.
[CUSTOM SCRIPT] Hello, I'm a custom script copied during the creation of the image!
したがって、それらは起動前スクリプトの役割を果たしますが、実際には /usr/local/liferay/pre-startup フォルダーにはコピーされません。 これを実現するには、ローカル フォルダーをバインド マウントし、そこに各フェーズの必要なスクリプトを配置して、ドキュメント hereに従ってコンテナーを起動する必要があります。
追加情報