Skip to content

Commit

Permalink
Add pg_bigm
Browse files Browse the repository at this point in the history
  • Loading branch information
takahashim committed Jul 22, 2024
1 parent 46f2c0f commit dfb807a
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
36 changes: 36 additions & 0 deletions .github/workflows/pg_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build and Push Docker Image of PostgreSQL with pg_bigm

on:
push:
branches:
- 'main'
workflow_dispatch:

jobs:
build-and-push:
runs-on: ubuntu-latest
env:
IMAGE_NAME: postgres_bigm
IMAGE_TAG: 12-latest
permissions:
packages: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
push: true
tags: ghcr.io/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM postgres:12

RUN apt update
RUN apt install -y postgresql-server-dev-12 make gcc curl libicu-dev

RUN cd /tmp && \
curl -L -O https://github.com/pgbigm/pg_bigm/archive/refs/tags/v1.2-20240606.tar.gz && \
tar zxf v1.2-20240606.tar.gz && \
cd pg_bigm-1.2-20240606 && \
make USE_PGXS=1 && \
make USE_PGXS=1 install && \
rm -rf /tmp/pg_bigm-1.2-20240606 /tmp/v1.2-20240606.tar.gz

RUN mkdir -p /docker-entrypoint-initdb.d
COPY ./initdb-pg_bigm.sh /docker-entrypoint-initdb.d/10_pg_bigm.sh
# RUN echo shared_preload_libraries='pg_bigm' >> /var/lib/postgresql/data/postgresql.conf
19 changes: 19 additions & 0 deletions initdb-pg_bigm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

set -e

# Perform all actions as $POSTGRES_USER
export PGUSER="$POSTGRES_USER"

# Create the 'template_pg_bigm' template db
"${psql[@]}" <<- 'EOSQL'
CREATE DATABASE template_pg_bigm IS_TEMPLATE true;
EOSQL

# Load pg_bigm into both template_database and $POSTGRES_DB
for DB in template_pg_bigm "$POSTGRES_DB"; do
echo "Loading pg_bigm extensions into $DB"
"${psql[@]}" --dbname="$DB" <<-'EOSQL'
CREATE EXTENSION IF NOT EXISTS pg_bigm;
EOSQL
done

0 comments on commit dfb807a

Please sign in to comment.