オープンソースのノーコードデータベースのNocoDBをDocker Composeで構築する

NocoDBは、オープンソースのノーコードデータベースです。データベースをGUIで管理できるツールで、以下のような機能があります。NocoDBをDocker Composeで構築する方法を紹介します。

必要な環境

NocoDBをDocker Composeで構築するには以下の環境が必要です。

  • Docker
  • Docker Compose

実装手順

NocoDBはDocker Composeを使えば簡単に構築できます。

  1. フォルダの作成

NocoDBを構築するためのフォルダを作成します。

コマンド実行

mkdir nocodb
cd nocodb
  1. docker-compose.ymlの作成

NocoDBを構築するためのdocker-compose.ymlを作成します。

docker-compose.yml

version: '3.8' services: nocodb: image: "nocodb/nocodb:latest" environment: NC_DB: "pg://root_db:5432?u=postgres&p=password&d=root_db" volumes: - "./nocodb:/usr/app/data" depends_on: root_db: condition: service_healthy ports: - "8080:8080" restart: always root_db: image: postgres environment: POSTGRES_DB: root_db POSTGRES_PASSWORD: password POSTGRES_USER: postgres healthcheck: interval: 10s retries: 10 test: "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\"" timeout: 2s restart: always volumes: - "./postgres:/var/lib/postgresql/data"

上記のdocker-compose.ymlは次のような設定を記述しています。

  • services.nocodb
    • image : NocoDBのイメージを指定します。
      • 今回はDocker hubから最新のイメージを取得するためにnocodb/nocodb:latestを指定しています。
    • environment : NocoDBの環境変数を指定します。
      • NC_DBはNocoDBのデータベースの接続情報を指定します。
        • pg://root_db:5432?u=postgres&p=password&d=root_db
          • pg : データベースの種類を指定します。
          • root_db : データベース名を指定します。
          • 5432 : データベースのポート番号を指定します。
          • postgres : データベースのユーザー名を指定します。
          • password : データベースのパスワードを指定します。
          • root_db : データベース名を指定します。
    • volumes : NocoDBのデータを保存するためのディレクトリを指定します。
      • 今回はホストOS上のカレントディレクトリにあるnocodbディレクトリをコンテナ内の/usr/app/dataにマウントしています。
      • このディレクトリにNocoDBのデータが保存されます。
      • このディレクトリをマウントしないと、コンテナを削除するとデータが消えてしまいます。
    • depends_on : NocoDBのコンテナが起動する前にPostgreSQLのコンテナが起動するように指定します。
    • ports : NocoDBのポートを指定します。
      • 今回はホストOSの8080ポートをコンテナの8080ポートにマッピングしています。
      • この設定により、ホストOSの8080ポートにアクセスするとNocoDBの画面が表示されます。
    • restart : NocoDBのコンテナが停止した場合に自動的に再起動するように指定します。
  • services.root_db
    • image : PostgreSQLのイメージを指定します。
      • 今回はDocker hubから最新のイメージを取得するためにpostgresを指定しています。
      • このイメージはPostgreSQLのデータベースを構築するために利用します。
    • environment : PostgreSQLの環境変数を指定します。
      • POSTGRES_DB : データベース名を指定します。
      • POSTGRES_PASSWORD : データベースのパスワードを指定します。
      • POSTGRES_USER : データベースのユーザー名を指定します。
    • healthcheck : PostgreSQLのコンテナが起動したかどうかを確認するための設定を指定します。
      • interval : コンテナの起動確認を行う間隔を指定します。
      • retries : コンテナの起動確認を行う回数を指定します。
      • test : コンテナの起動確認を行うコマンドを指定します。
      • timeout : コンテナの起動確認を行うタイムアウト時間を指定します。
    • restart : PostgreSQLのコンテナが停止した場合に自動的に再起動するように指定します。
    • volumes : PostgreSQLのデータを保存するためのディレクトリを指定します。
      • 今回はホストOS上のカレントディレクトリにあるpostgresディレクトリをコンテナ内の/var/lib/postgresql/dataにマウントしています。
      • このディレクトリにPostgreSQLのデータが保存されます。
      • このディレクトリをマウントしないと、コンテナを削除するとデータが消えてしまいます。
  1. NocoDBの起動

NocoDBを起動します。

コマンド実行

docker-compose up -d
  1. NocoDBの起動確認

NocoDBが起動しているか確認します。

コマンド実行

docker-compose ps

数のようにnocodb_nocodb_1nocodb_root_db_1のStatusがUpになっていることを確認します。

実行結果

      Name                     Command               State           Ports
-----------------------------------------------------------------------------------
nocodb_nocodb_1   docker-entrypoint.sh npm s ...   Up
nocodb_root_db_1  docker-entrypoint.sh postgres    Up      5432/tcp, 5433/tcp

これでNoCodeDBの構築が完了しました。

NocoDBの初期設定

NocoDBの初期設定を行います。ブラウザでhttp://localhost:8080にアクセスするとNocoDBの画面が表示されます。管理者のユーザー名とパスワードを任意に入力して「Sign Up」をクリックします。

次のように初期状態で登録されているデータベースが表示されます。

このとおり、Docker Composeを使うことにより、簡単にNocoDBを構築できました。

コメントを残す

マークダウン形式でコメントを入力できます。

アップロードファイルの最大サイズ: 512 MB。 画像, 音声, 動画, 文書, スプレッドシート, 対話型, テキスト, アーカイブ, コード, その他 をアップロードできます。 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ

プロフィール背景
Ryosuke
Ryosuke

ITエンジニア & 講師

クラウドネイティブやアーキテクチャ設計の講師として活動しながら、ITエンジニアのDXを推進するために新しい技術やベストプラクティスを常に学び、エンジニアの生産性と開発品質の向上に貢献することを目指しています。猫5匹飼っています。山奥のポツンと一軒家に住んでいて、事務所は海の近くです。