GitHub Codespaces で PostgreSQL を動かすメモ

GitHub Codespaces で PostgreSQL を動かすメモ

GitHub Codespaces で PostgreSQL を動かすメモです。

背景

仕事やプロトタイピングにおいて PostgreSQL を動かす環境に出会うことも多いですが、それぞれのシチュエーションでバージョンや OS などいろいろな組み合わせがあります。

そういうときに手元の環境でやるより、もしや GitHub Codespaces で作った方が作りやすいのではと考えたのでやってみます。

ひとまず GitHub Codespaces を起動

ベースはどんなリポジトリでもいいのですが、公式のシンプルなものを起動しましょう。

github/codespaces-blank

こちらを起動します。

起動しました。

Postgres をインストール

これらの記事を参考に進めますが GitHub Codespaces に合わせた対応をします。

sudo apt update

ターミナルでこちらを実行し、

sudo apt install postgresql postgresql-contrib

こちらで PostgreSQL をインストールします。途中で Y/n が聞かれたら yes で進めます。

インストール中...

うまくインストールされました。

PostgreSQL 起動

実は、通常 systemctl で PostgreSQL 起動するわけですが

sudo systemctl start postgresql

"systemd" is not running in this container due to its overhead.
Use the "service" command to start services instead. e.g.: 

service --status-all

こちらだと GitHub Codespaces では割り当てられていないようで service を使います。

service --status-all

で起動中のサービスを確認すると

[ ? ]  binfmt-support
 [ - ]  cron
 [ - ]  dbus
 [ ? ]  hwclock.sh
 [ - ]  postgresql
 [ - ]  procps
 [ - ]  rsync
 [ + ]  ssh
 [ - ]  sysstat
 [ - ]  x11-common

まだ postgresql は起動してません。

sudo service postgresql start

で起動します。

service --status-all

で起動中のサービスを確認すると、

[ ? ]  binfmt-support
 [ - ]  cron
 [ - ]  dbus
 [ ? ]  hwclock.sh
 [ + ]  postgresql
 [ - ]  procps
 [ - ]  rsync
 [ + ]  ssh
 [ - ]  sysstat
 [ - ]  x11-common

無事起動しました!

動作チェック

sudo su postgres

で postgres ユーザーに変更します。 rm: cannot remove '/usr/local/share/nvm/current': Permission denied とでるのは気にしなくて OK です。

psql

で PostgreSQL で入ります。

select version();

バージョンをチェックしてみます。

PostgreSQL 12.18 (Ubuntu 12.18-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit
(1 row)

という返答が来て無事動作していることが分かります。

なお PostgreSQL サーバーは、また GitHub Codespaces を再起動してしまうと、一旦停止してしまうので再起動して使います。

このあたりも本来であれば devcontainer.json あたりで起動時にサーバーを起こせるように対応するようにすればより良いので、今後やってみます。