1

Elastic Beanstalk を使用しており、CodeCommit と CodePipeline を使用してアプリケーションをデプロイしています。テンプレートには Smarty を使用しています。アプリケーションの新しいバージョンをデプロイするたびにすべてのテンプレートが再コンパイルされるのを避けるために、コンパイル済みのテンプレート ファイルを/var/app/current/ディレクトリの外に置き、デプロイのたびに削除されるようにしたいと考えています。

しかし、これを行うと、元のテンプレート ファイルが更新されても、Smarty はコンパイルされたテンプレート ファイルを更新しません。原因を調べるために調査しました。EC2 インスタンスの元のテンプレート ファイルを見ると、最終更新日はすべて 1979-12-31 05:08:00 です。

Elastic Beanstalk は、デプロイ時にファイルの変更日を保持していないようです。CodeCommit または CodePipeline で元の変更日が失われている可能性がありますか?

私の推測では、Smarty はファイルの変更日を見て、コンパイルされたファイルが最新かどうかを判断していると思います。また、コンパイルされたテンプレートは元のテンプレートよりも新しいため、最新でなくても最新であると見なされます。

新しい展開ごとにコンパイルされたテンプレートを削除することを除いて、この問題を解決する方法についてのアイデアはありますか? Elastic Beanstalk に変更時間を保持させる方法はありますか? または、ファイルの変更日以外に、テンプレート ファイルが更新されたことを Smarty に認識させる方法はありますか?

4

1 に答える 1