PostgreSQL の Docker イメージを使い、docker-compose を用いて pgvector の有効化と初期データの投入を簡単にセットアップできるコードを作成しました。
既存の記事では、pgvector の有効化や初期データ投入をコンテナ起動時に自動実行する方法(docker-entrypoint-initdb.d を活用する設定)まで紹介した記事が見当たらなかったのでこの投稿に至ります。
この構成では、PostgreSQL に pgvector をインストールし、初期化スクリプトを自動実行させる設定が含まれています。以下にコードの一部を抜粋します。
docker-compose.yml と Dockerfile を組み合わせ、pgvector のインストールとセットアップを行います。
# docker-compose.yml
version: "3.9"
services:
postgres:
build:
context: .
ports:
- "5432:5432"
volumes:
- ./postgres:/var/lib/postgresql/data
- ./postgres/init:/docker-entrypoint-initdb.d
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- PGDATA=/var/lib/postgresql/data/pgdata
# Dockerfile
FROM --platform=arm64 postgres:17.1
RUN apt-get update && \
apt-get install -y git make gcc postgresql-server-dev-17
RUN cd /tmp && \
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git && \
cd pgvector && \
make && \
make install && \
cd ../ && rm -rf pgvector
詳細なコードと手順については、GitHub リポジトリにまとめています。