くますきIT日記

IT系資格、競技プログラミングの情報を書いていきます。

Budibase②DB環境を構築してみる。

 

 

1.本記事について

AWSにてBudibaseの環境を構築してみたので、データ保管先のDBを準備した。

その備忘録。

 

2.準備したDB環境

実務で想定しているpostgresql-9.6を作成。(古いが・・)

適切なイメージがあったので、これを利用する。

https://hub.docker.com/r/postgresqlaas/docker-postgresql-9.6

# コンテナイメージの取得

docker pull postgresqlaas/docker-postgresql-9.6

※既存DBを使わない、DBにこだわらない場合、

 Budibaseが内包しているDBを利用できる。

 Budibase DB

 

3.BudibaseとDB環境の接続

以下を参考に、Budibaseのコンテナとpostgresql-9.6のコンテナ間の接続を確立する。

accessing a docker container from another container - Stack Overflow

 

①ネットワーク作成

docker network create myNetwork --subnet=172.18.0.0/24

※注意※

サブネットは指定必須。指定しないとランダムなサブネットが割り当てされる

公式ドキュメント参照:

network コマンドを使う — Docker-docs-ja 19.03 ドキュメント

 

②コンテナとネットワークを接続

docker network connect myNetwork postgresql
docker network connect myNetwork bbapps

 

結果は以下で確認した。

docker network inspect myNetwork

-----------------------------------------

        "ConfigOnly": false,
        "Containers": {
            "41cb024e89e0e74c0906fd8b035357eb83f7cb005b4319bff4f036b123015740": {
                "Name": "bbapps",
                "EndpointID": "7896a28f69fd73b4603bb43b2e46d93974c62d56ba9be2ccf5461ccf82738336",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "7b36ed3e27e6257e400afb9c6bc892810395e2a33e667757301e83959c905a7d": {
                "Name": "postgresql",
                "EndpointID": "69786b1e1e8326a1b0eb971bf307da5de2a466a5043e482181457c476285b0bb",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",

-----------------------------------------

 

4.DB環境の展開

①データを永続化するための保管先ディレクトリを作成。

mkdir -p /postgresql

 

②DBの展開

docker run -d --name postgresql -p 5432:5432 -e POSTGRES_USERNAME=test -e POSTGRES_PASSWORD=test_password -e POSTGRES_DBNAME=test -v /postgresql:/data --network=myNetwork --ip=172.18.0.100 --restart=always postgresqlaas/docker-postgresql-9.6

 

色々、入れたい設定を追加した。

1.「-p 5432:5432」ホスト:5432から接続できるようにする。

2.「-v /postgresql:/data」データを永続化するための保管先。

3.「--network=myNetwork」BudiBaseと同じネットワークに配置。

4.「--ip=172.18.0.100」起動時に毎回変わると手間なのでIPアドレスを固定。

5.「--restart=always 」インスタンス起動後、コンテナを自動起動する。

 

③接続確認

# psqlの利用に必要なパッケージをインストール

apt install postgresql-client

# 接続テスト

psql -h 127.0.0.1 -p 5432 -U test 

-----------------------------------------
Password for user test:
-----------------------------------------

→ 問題なく接続できそう。

 

※補足※

本コンテナは、パスワード等未指定の場合、以下で確認可能。

docker logs postgresql

 

5.サンプルDB定義の投入

psqlにて接続して、以下に記載されているサンプルSQLを実行する。

Quickstart: PostgreSQL

 

 

以上で、やっとBudiBaseでアプリを作成できるようになる。

 

次回:BudiBaseのバックアップ設定を行う。

   現状undo機能がないので必須と思われる。※近日実装されるかも。