Upgrading Exment on docker2021年11月06日 19:47

データ管理に、Exmentを使用させて貰ってます。 記事を参考にさせていただき、 php-fpm-alpineベースの dockerコンテナ用のDockerfileを用意し、Exmentを立てていました。

その際、コンテナ内の /var/www/exment をボリュームで永続化していました。困っていたのは、php-fpm-alpineや、Exmentをアップグレードをする時でした。

アップグレードに際して、以下を実施していました。

  1. DockerfileのFROMを修正
  2. docker build
  3. イメージを差し替えて、docker run

上記だと、当たり前ですが、新規にExmentを構築したのと同様に、タイムゾーンや、Databaseを指定する所から始まります。登録していたデータベースを指定できません。

Exmentのマニュアルのアップデート方法は、composer update後、php artisan exment:updateするものです。dockerイメージには、使いづらいです。そこで、一度、別のデータベースで構築し直した後、.envのDB_DATABASEを修正し、もとのデータベースに戻すということをしていました。

何か方法はないかなと思っていた所に、Exmentのマニュアルに docker用のインストールに関する記述がありました。

そのdocker-composeの記述で、.envファイルをバインドする事を発見! これで、困り毎は無事解決しました。簡単な話でした。:D

追記

.env をバインドするだけで良いかと思っていのですが、駄目でした。データ参照は問題なかったのですが、データ登録をした所、"notifiesテーブルに、target_id カラムがない!"という様なメッセージが出て、登録に失敗しました。

コンテナにashで入り、以下を実施して、データ登録も出来るようになりました。

  1. composer update
  2. php artisan exment:update

これで管理していくしかないかなぁ。:D