仕事でGeoServerのセットアップすることになりました。
以前に加わっていたプロジェクトにて必要があったため導入されたのですが、開発が終わってしばらく放置されており、もう稼働していない状態でした。
この度、私が退職するので諸々引き継ぎをする必要があり、その過去のプロジェクトについても対象で、今どうなっているのか確かめようとしたところ、地図データを取得しようにもエラーとなってしまう状況でした。
GeoServer 稼働インスタンス(AWSです)にログインしてみると、ディスクがいっぱいで、調べたらログが30GBもありました。ログでディスク容量を食い尽くしており、ローテーション設定しといてよ、と思いながらそのログは truncate して、これで復活かなと思いきや、そんなことは全然ありませんでした。
Dockerで稼働していましたが、設定ファイル格納ディレクトリがホスト側にマウントされておらず、データストア設定がクリアされていました。仕方がないので再設定しようとしたところ、なぜかPostGISデータソース設定画面が開きません。設定も残っていないし、最新のGeoServerを導入することで解決するかと思い、新たに導入することにしました。
GeoServer 2.27.2 の Docker イメージを使うようにして、起動してみました。しかしコンテナが再起動を繰り返しており、tomcat の何がしかのスクリプトがないというエラーがログに出ている状況。これは Copilot にエラーを投げて、その回答にしたがって設定追加することで解決。何が問題で、どんな解決方法なのか、よく分かっていないのでここに書けないのですが、何はともあれ解決して先に進めました。
これで無事 GeoServer が立ち上がったものの、管理画面へログインするボタンを押しても反応がありません。ブラウザの開発者ツールのコンソールをみると、Contents Security Policy (CSP) に違反している、というメッセージが出ていました。どうやら、定められた宛先へのフォーム送信しかできない様子。
ここでまたCopilot登場なのですが、いろいろ解決策を提案してくれるものの、どれもダメ。だいぶ四苦八苦しました。
AIに頼るのはやめて、自分で何が起こっているのかを把握し、解決方法を探ることに。改めて GeoServer公式ドキュメントを調べたところ、csp.xml という設定ファイルがあることが分かり、一旦 CSP を無効にする設定へ変更。
これでやっとログインできました。
なお、CSP についての GeoServer 公式マニュアルページはこちらです。

コメント