🦣

さくらのVPSにDockerにてPostgreSQLを入れる

2023/07/08に公開

さくらのVPSでPostgreSQLを動作させて、アプリ検証用環境を作る(Dockerにて)

さくらのVPS 1ギガプラン(お試しなのでお手軽に・・)

OS:AlmaLinux9.1 インストール済み
さくらのVPS AlmaLinux9セットアップ情報

SSHでのさくらのVPSへの接続環境の準備

私はMacを利用しているので、Macからターミナルを利用して SSHでさくらのVPSに接続。以下ページを参考に実施。

さくらのVPSにMACのターミナルからSSH接続する方法 | さくらインターネットのVPS設定マニュアル

DokcerとDocker-Composeのインストール

こちらのページを参考にしました。

AlmaLinuxにDockerとdocker-composeを導入する - Qiita

ワークディレクトリ準備

mkdir /home/hogehogehoge/docker/postgresql

docker-compose.yml準備

sudo vi /home/hogehogehoge/docker/postgresql/docker-compose.yml

下記内容で保存します。db-storeという名前で volumes指定をしておきます。

version: "3"

services:
  db:
    image: postgres:14
    container_name: postgres
    ports:
      - 5432:5432
    volumes:
      - ./db-store:/var/lib/postgresql/data
    environment:
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --locale=C"
      POSTGRES_PASSWORD: "hogehogehogehogeMuz%ukashiiPassword1!!!"
volumes:
  db-store:

起動

ymlファイル保存先のカレントディレクトリへ移動し、docker-composeにて起動。DBインスタンスが起動して、指定ボリュームにファイルが永続化されます。

sudo docker-compose up -d

pg_hba.confの修正

sudo vi /home/hogehogehoge/docker/postgresql/db-store/pg_hba.conf

自身のサーバーからはの接続は許可。その他は特定のデータベース名(ここでは 任意の名称のreportsとしてあります)と、特定のクライアントIPからの接続に限定します。(xxxは許可するアドレスを入力)

IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host   reports         all             xxx.xxx.xxx.xxx/xx               md5

postgresql.confの修正

sudo vi /home/hogehogehoge/docker/postgresql/db-store/postgresql.conf

ログの出力を修正しておきます(編集項目抜粋)。ログコレクタの有効化と出力パス指定。ログローテーションと曜日別にログを出力する形に修正。

logging_collector = on
log_directory = 'log’
log_rotation_age = 1d
log_truncate_on_rotation = on
log_filename = 'server_log.%a’

Docker PostgreSQL再起動

一回、Dockerの動作を止めて、再起動します。カレントディレクトリに移動して、

sudo docker-compose  down
sudo docker-compose up -d

外部からのDB接続確認

メンテナンス用にPostgreSQLを外部から接続できるかを確認します。データベースはあらかじめ作成しておきました。

一時的に、さくらのVPSのコントロールパネルから、パケットフィルタで指定ポート番号への通信許可を有効にします(接続確認後、あとで設定は削除します)

Untitled

pgAdminでデータベースが参照できることを確認します。

Untitled

まとめ

お試し環境なので、最低限の設定にて、とりあえず実行できました。さあ、アプリと連動させる準備ができたので、Asp.Net Core RazorPagesにて、アプリを作ってみようっと。

GitHubで編集を提案

Discussion