プログラミング

[開発記録]TypeScript+Express+Postgresqlで、簡易的なAPIサーバを構築した話③ -PostgreSQL利用設定-

「TypeScript Express PostgreSQL」3本目です。
前述していた通り、PostgreSQLをインストールしたDockerコンテナを起動し、アプリケーションから利用できるようにします。

PostgreSQL

公式サイト:https://www.postgresql.org/

PostgreSQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。今回はユーザ管理のCRUDアプリケーションを構築するのですが、ユーザデータはメモリ上ではなく、DBに保管します。DBへ接続するために、PostgreSQLを利用します。PostgreSQLのほかMySQL、Orcleなど様々なRDBMSがありますが、PostgreSQLを利用します。

手順

自分のPCのDBを直接利用したくないので、公式のDockerイメージを拾ってきて、その中のPostgreSQLを利用します。WSL2でDockerを利用する方法については、下記の記事がわかりやすそうです。

Dockerfile/DockerComposeを準備

・Dockerfile

src直下にDockerfileを作成します。内容は単純で、起動対象のイメージをPostgreSQLのDockerイメージに設定し、環境変数に言語設定を投入するだけです。

FROM postgres:11-alpine
ENV LANG ja_JP.utf8

・docker-compose.yaml

docker-composeファイルです。こちらも特に面倒なことはせず、DBのポート番号や管理者ユーザの設定をするのみです。今回はテスト用のプロジェクトなのでパスワード等をオープンにしていますが、商用で利用する場合はもう少しやりようを考えましょうね。

version: '3'
services:
  db:
    build: .
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin

Dockerコンテナ起動・接続テスト

Dockerを起動し、psqlを利用して接続していきます。

// Docker起動
$ docker-compose up -d

> Creating network "typeorm_default" with the default driver
> Creating typeorm_db_1 ... done

$ psql -h localhost -p 5432 -U admin

> Password for user admin: 
> psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1), server 11.14)
> Type "help" for help.

admin=# 

まとめ

PostgreSQLを内包したDockerコンテナを起動し、psqlを用いて接続できました。
この接続設定を利用して、アプリケーションからDBに接続し、ユーザデータを操作するようにします。

以上、次回に続きます。