From 995d350f9d037e048a21ab3b739f050ed02ed37a Mon Sep 17 00:00:00 2001 From: Michael Pellegrini <466696+mpellegrini@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:58:27 -0400 Subject: [PATCH] feat(monorepo): update docker-compose.yml to use custom pg image (#33) Create a custom Docker image for Postgres to add the citext extension to the database upon initialization. --- .docker/PgDockerfile | 4 ++++ .docker/initdb-extensions.sh | 11 +++++++++++ .gitignore | 2 +- .prettierignore | 2 +- docker-compose.yml | 8 +++++--- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .docker/PgDockerfile create mode 100644 .docker/initdb-extensions.sh diff --git a/.docker/PgDockerfile b/.docker/PgDockerfile new file mode 100644 index 0000000..56719dd --- /dev/null +++ b/.docker/PgDockerfile @@ -0,0 +1,4 @@ +FROM postgres:16.2-alpine + +# Copy in the load-extensions script +COPY initdb-extensions.sh /docker-entrypoint-initdb.d/ diff --git a/.docker/initdb-extensions.sh b/.docker/initdb-extensions.sh new file mode 100644 index 0000000..eed06ae --- /dev/null +++ b/.docker/initdb-extensions.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +echo "Loading extensions into $DB" + +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL +# must quote extension names or else symbolic error will be thrown. +CREATE EXTENSION IF NOT EXISTS 'citext'; +select * FROM pg_extension; +EOSQL diff --git a/.gitignore b/.gitignore index 389f612..583beac 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,4 @@ vite.config.ts.timestamp-* .vercel/ # local docker volumes -/.docker/ +/.docker/data diff --git a/.prettierignore b/.prettierignore index a76172d..7764a79 100644 --- a/.prettierignore +++ b/.prettierignore @@ -59,7 +59,7 @@ vite.config.ts.timestamp-* .vercel/ # local docker volumes -/.docker/ +/.docker/data #------------------------------------------------------------------------------------------------------------------- # Prettier-specific overrides diff --git a/docker-compose.yml b/docker-compose.yml index 2f6955c..225e244 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,8 @@ services: postgres: - image: postgres:16.2-alpine + build: + context: ./.docker + dockerfile: PgDockerfile restart: always environment: - POSTGRES_USER=postgres @@ -13,7 +15,7 @@ services: ports: - '5432:5432' volumes: - - ./.docker/pg-data:/var/lib/postgresql/data + - ./.docker/data/pg-data:/var/lib/postgresql/data mailpit: image: axllent/mailpit @@ -27,4 +29,4 @@ services: - 8025:8025 - 1025:1025 volumes: - - ./.docker/mailpit-data:/data + - ./.docker/data/mailpit-data:/data