serposcope3.4からserposcope3.5へアップデートしたときのエラーと改善策

serposcope3.4からserposcope3.5へアップデートしたときのエラーと改善策
2025年5月時点、Googleの検索仕様変更などに追従するため、serposcope3.4から3.5へのアップデートを行いました。本記事では、Docker環境でのアップデート時に発生したエラーの内容と、その具体的な解決策を解説します。
はじめに
serposcopeはGoogleなどの検索順位を自動で計測できるオープンソースツールです。 Googleの仕様変更等への対応には定期的なバージョンアップが欠かせません。 しかし、アップデート時にdebパッケージのインストール時エラーやユーザー/グループの競合が発生することがあります。
アップデート時に発生したエラー
1. adduser / addgroup のコマンドが見つからない
swift/var/lib/dpkg/info/serposcope.postinst: 23: addgroup: not found
/var/lib/dpkg/info/serposcope.postinst: 24: adduser: not found
原因
Dockerベースイメージにはadduser
/addgroup
がインストールされていません。
debパッケージのpostinstスクリプトでユーザー・グループ作成に失敗します。
2. systemctl: not found
swift/var/lib/dpkg/tmp.ci/preinst: 19: systemctl: not found
...
/var/lib/dpkg/info/serposcope.postinst: 26: systemctl: not found
原因
serposcopeのdebパッケージはサービスとしてsystemd経由で自動起動させるためにsystemctl
を呼び出します。
しかしDockerではsystemdは通常動作していないため、これらのエラーが出ます。
対応
Docker環境では無視してOK。サービス起動はENTRYPOINT
で行えば問題ありません。
3. chown: invalid user: 'serposcope '
bashchown: invalid user: 'serposcope\:serposcope'
原因
adduser
/addgroup
の実行に失敗し、ユーザー・グループが作成されなかったため、
所有権の設定でエラーになります。
4. groupadd: group 'serposcope' already exists など
vbnetgroupadd: group 'serposcope' already exists
The command '/bin/sh -c groupadd -r ${APP_USER} && useradd -r -g ${APP_USER} ${APP_GROUP}' returned a non-zero code: 9
原因 serposcopeのdebパッケージインストール時にすでにユーザー・グループが自動生成されているため、 Dockerfile側で再度作成しようとすると競合し、ビルドが失敗します。
改善策とベストプラクティス
1. 必要なパッケージを最初にインストール
adduser
パッケージをDockerfileで必ずインストールしてください。
swiftRUN apt-get update && \
apt-get install -y wget openjdk-17-jre-headless adduser && \
rm -rf /var/lib/apt/lists/*
2. ユーザー・グループの作成は自作しない
serposcopeのdebパッケージが自動でserposcope
ユーザー・グループを作成します。
Dockerfile内でuseradd
やgroupadd
を記述するとエラーになるので、記述は不要です。
3. systemd関係のエラーは無視してOK
systemctl: not found
などはDocker上では不要な処理なので、エラーとして無視して問題ありません。
4. ENTRYPOINTでjarを直接起動
Docker環境では、ENTRYPOINT
またはCMD
でjarを直接起動すればOKです。
例(entrypoint.sh
がない場合):
cssENTRYPOINT \["java", "-jar", "/usr/share/serposcope/serposcope.jar"]
5. 修正版Dockerfile例
bashFROM ubuntu:22.04
ARG SERPOSCOPE_VERSION=3.5
ARG CPU_MODEL=amd64
ENV SERPOSCOPE_HOME=/var/lib/serposcope
RUN apt-get update && \
apt-get install -y wget openjdk-17-jre-headless adduser && \
rm -rf /var/lib/apt/lists/*
RUN wget [https://www.serposcope.com/downloads/${SERPOSCOPE_VERSION}/serposcope_${SERPOSCOPE_VERSION}_${CPU_MODEL}.deb](https://www.serposcope.com/downloads/${SERPOSCOPE_VERSION}/serposcope_${SERPOSCOPE_VERSION}_${CPU_MODEL}.deb) -O serposcope.deb && \
dpkg -i serposcope.deb && \
rm serposcope.deb
WORKDIR ${SERPOSCOPE_HOME}
EXPOSE 7134
ENTRYPOINT \["java", "-jar", "/usr/share/serposcope/serposcope.jar"]
まとめ
- serposcopeのdebパッケージはユーザー・グループを自動作成するため、手動作成は不要(エラー原因)
adduser
は事前にインストール必須- systemctl関連エラーはDocker環境なら無視してOK
- ENTRYPOINTで直接Java起動が推奨
これらを守ることで、serposcope3.4→3.5アップデート時のトラブルを回避し、スムーズに最新版へ移行できます。
参考
- article
serposcope3.4からserposcope3.5へアップデートしたときのエラーと改善策
- article
【設定方法】Docker環境で立ち上げたserposcopeのデータをMariaDBへ保存し永続化する
- article
AI ペアプログラミング時代到来!Codex で効率化するチーム開発術
- article
【トラブル解決】git push が拒否される原因と安全な対応手順
- article
VSCode 拡張との比較でわかる!Cursor を選ぶべき開発スタイル
- article
MySQL 入門:5 分でわかる RDBMS の基本とインストール完全ガイド
- article
Cline × VSCode:最強の AI ペアプログラミング環境構築
- article
Convex 入門:5 分でリアルタイム DB と関数 API を立ち上げる完全ガイド
- blog
Googleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
- blog
【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
- blog
Googleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
- blog
Pixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
- blog
フロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
- blog
失敗を称賛する文化はどう作る?アジャイルな組織へ生まれ変わるための第一歩
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来