【超簡単】SerposcopeをDockerで構築・起動する方法を6ステップで解説!

当ページのリンクには広告が含まれています。
【超簡単】SerposcopeをDockerで構築・起動する方法を6ステップで解説!という記事のアイキャッチ画像
  • Serposcopeを使いたいけど、公式のDockerイメージがない…
  • どのようにDocker Composeで起動すればいいの?
  • どうやって永続化すればいいの?

以上の悩みを解決できる記事となっています!

Serposcopeは、検索キーワードの順位をチェックするツールですが、公式のDockerイメージがないんですね。

僕は全てDockerで管理しているので、Dockerイメージがないと管理が面倒です。

そこでこの記事では、SerposcopeのDockerイメージを作成する方法を紹介します。

最終的にDocker Composeを使用して起動できるようにするので、管理も簡単ですよ!

その結果、誰でも簡単にSerposcopeを使用できるようになります。

spa

それでは作成していこう!

著者アバター

✍️この記事を書いた人

spa

  • 🎮マインクラフト歴10年
  • 🖥️マルチサーバー運営経験あり
  • 🎬元マインクラフト系ゆっくり実況者
目次

今回の環境

まず最初に、今回の環境を紹介します。

  • Ubuntu 24.04.2 LTS
  • Docker 27.5.1
  • Docker Compose 2.32.4
  • Serposcope 3.5(sqliteで構築)

SerposcopeをDockerで起動する6つのステップ

SerposcopeをDockerで起動するには、以下の6つのステップがあります。

  • Serposcopeの設定ファイルを作成する
  • SerposcopeのDockerfileを作成する
  • SerposcopeのDocker Composeファイルを作成する
  • Serposcopeを起動させるentrypoint.shを作成する
  • Serposcopeのコンテナを起動する
  • Serposcopeのコンテナを停止する

それぞれのステップを順番に説明していきますね。

Serposcopeの設定ファイルを作成する

Serposcopeの設定ファイルを作成します。

僕が使用している設定ファイルを載せておきます。

core.sql.url="jdbc:sqlite:/usr/share/serposcope/db/database.sqlite3.db"

内容は単純で、SQLiteファイルのパスを指定しているだけです。

これがないと、SerposcopeがSQLiteファイルを認識できないので、注意してください。

spa

このためだけに設定ファイルを用意しているんだよ!

SerposcopeのDockerfileを作成する

SerposcopeのDockerfileを作成します。

僕が使用しているDockerfileを載せておきます。

# 最新のUbuntuイメージを使用
FROM ubuntu:latest

# Serposcopeのバージョンを指定
ARG SERPOSCOPE_VER=3.5

# 必要なパッケージをインストール
RUN apt-get update && \
    apt-get install -y wget && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Serposcopeのバイナリをダウンロードしてインストール
RUN wget https://www.serposcope.com/downloads/${SERPOSCOPE_VER}/serposcope_${SERPOSCOPE_VER}_amd64.deb -O serposcope.deb && \
    dpkg -i serposcope.deb && \
    rm serposcope.deb

# 設定ファイルをコピー
COPY application.conf /usr/share/serposcope
# エントリーポイントスクリプトをコピー
COPY entrypoint.sh /entrypoint.sh
# エントリーポイントスクリプトに実行権限を付与
RUN chmod +x /entrypoint.sh

# 作業ディレクトリを設定
WORKDIR /usr/share/serposcope/

# データベース用のディレクトリを作成
RUN mkdir -p ./db

# データベースの永続化用ボリュームを指定
VOLUME ["/usr/share/serposcope/db"]
# ポート6333を公開
EXPOSE 6333
# rootユーザーで実行
USER root

# エントリーポイントを指定
ENTRYPOINT ["/entrypoint.sh"]

内容を簡単に解説すると、以下のとおりです。

  • UbuntuのDockerイメージを使用する
  • Serposcopeのバージョンを指定する
  • Serposcopeのバイナリをダウンロードする
  • Serposcopeの設定ファイルをコピーする
  • Serposcopeのエントリーポイントを作成する

という内容です。

これで、SerposcopeのDockerfileが完成しました。

spa

やっていることはめちゃくちゃ簡単だよ!

SerposcopeのDocker Composeファイルを作成する

SerposcopeのDocker Composeファイルを作成します。

実際に僕が使用しているDocker Composeファイルを載せておきます。

# サービスの定義
services:
  # Serposcopeサービスの設定
  serposcope:
    build: .  # Dockerfileからビルド
    container_name: serposcope  # コンテナ名
    environment:
      - TZ=Asia/Tokyo  # タイムゾーンの設定
    volumes:
      - ./serposcope-data:/usr/share/serposcope/db  # データの永続化
    restart: always  # 常に再起動する設定

内容を簡単に解説すると、以下のとおりです。

  • Serposcopeのコンテナを作成する
  • SerposcopeのコンテナとSQLiteファイルを紐付ける

という内容です。

さらに僕は、以下の内容を追加しています。

  # Cloudflareサービスの設定
  cloudflare:
    image: cloudflare/cloudflared:latest  # Cloudflareのイメージ
    container_name: serposcope-cloudflare  # コンテナ名
    command: tunnel run  # トンネルを実行
    environment:
      - TUNNEL_TOKEN=${TUNNEL_TOKEN}  # 環境変数としてトンネルトークンを設定
    restart: always  # 常に再起動する設定

これは、CloudflareのTunnelを使用して、自宅サーバーにあるSerposcopeを公開しています。

そうすることで、外出先やスマホからもSerposcopeにアクセスできるようになります。

ただし、Serposcopeはログイン認証などがないため、公開していると誰でもアクセスできてしまいます。

spa

要するに誰でも操作できるのでめちゃくちゃ危険ってこと!

なので、Cloudflare Accessを使用して、Serposcopeにアクセスできるユーザーを制限しています。

また、CloudflareのTunnelを使用するためには、CloudflareのAPIキーが必要です。

CloudflareのAPIキーは、CloudflareのDashboardから取得できますよ。

その後、以下の形式で.envファイルにCloudflareのAPIキーを設定してください。

TUNNEL_TOKEN=your_cloudflare_tunnel_token

取得方法は、以下の記事を参考にしてくださいね!

初心者のspa

いや、そもそもCloudflare Tunnelって何?

Cloudflare Tunnelは、インターネット上の接続を安全にするためのサービスです。

ローカルネットワークからCloudflareのネットワークを経由して安全なトンネルを作成することができます。

ファイアウォールの設定を変更せずに、内部アプリケーションを外部アクセス可能にすることができるので、めちゃくちゃ楽です。

Serposcopeを起動させるentrypoint.shを作成する

Serposcopeを起動させるentrypoint.shを作成します。

僕が使用しているentrypoint.shを載せておきます。

#!/bin/bash

# アプリケーションをバックグラウンドで起動してSQLiteファイルを生成
/bin/bash -c "/usr/share/serposcope/serposcope.sh" &
APP_PID=$!

# SQLiteファイルが作成されるのを待つ
while [ ! -f /usr/share/serposcope/database.sqlite3.db ]; do
  sleep 1
done

# プロセスを終了
kill $APP_PID

# SQLiteファイルを移動
while [ ! -f /usr/share/serposcope/db/database.sqlite3.db ]; do
  mv /usr/share/serposcope/database.sqlite3.db* /usr/share/serposcope/db/
done

# アプリケーションをフォアグラウンドで再起動
/bin/bash -c "/usr/share/serposcope/serposcope.sh"

entrypoint.shがあることで、SerposcopeのSQLiteファイルが生成されるのを待ってから、Serposcopeを起動することができます。

その後、SerposcopeのSQLiteファイルを移動してから、Serposcopeを再起動することで、永続化したSQLiteファイルを使用することができます。

spa

そのまま永続化しようとも思ったけど、上手くいかなかったので、移動させてから再起動させるようにしてる!

Serposcopeのコンテナを起動する

ここまで来たら、Serposcopeのコンテナを起動するだけです。

以下のコマンドを実行して、Serposcopeのコンテナを起動することができます。

docker compose up -d

これで、Serposcopeを起動することができます。

spa

お疲れ様でした!

Serposcopeのコンテナを停止する

もしSerposcopeのコンテナが不要になれば、コンテナを停止します。

以下のコマンドを実行して、Serposcopeのコンテナを停止することができます。

docker compose down

これで、Serposcopeを停止することができます。

【まとめ】SerposcopeをDockerで起動する方法を紹介

ここまで読んでくれてありがとうございます!

今回は、SerposcopeをDockerで起動する方法を紹介しました。

SerposcopeをDockerで起動するためのステップをまとめておきますね。

  • Serposcopeの設定ファイルを作成する
  • SerposcopeのDockerfileを作成する
  • SerposcopeのDocker Composeファイルを作成する
  • Serposcopeを起動させるentrypoint.shを作成する
  • Serposcopeのコンテナを起動する
  • Serposcopeのコンテナを停止する

これで、SerposcopeをDockerで起動することができます。

ぜひ、この記事を参考にして、SerposcopeをDockerで起動してくださいね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

「動画編集→ゲーム依存→プログラミング→自宅サーバー」とオタクルートに生きてます。最近はProxmoxいじってます!

目次