diff --git a/plpgsql/Dockerfile b/plpgsql/Dockerfile index 40b6cd48..fe831e7e 100644 --- a/plpgsql/Dockerfile +++ b/plpgsql/Dockerfile @@ -10,14 +10,35 @@ ENV PGDATA /var/lib/postgresql/data_local RUN mkdir -p "$PGDATA" && chown -R postgres:postgres "$PGDATA" && chmod 777 "$PGDATA" +ADD ./*.sh /app/ +ADD ./src /app/src + +# PGUNIT +FROM base as pgunit + RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates wget \ && rm -rf /var/lib/apt/lists/* -ADD ./*.sh /app/ -ADD ./src /app/src - ADD ./pgunit/initialize.sh /app/ ADD ./pgunit/*.sql /app/ RUN chmod +x ./*.sh \ && ./initializeDocker.sh + +# PGTAP +FROM base as pgtap + +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates build-essential git-core libv8-dev curl postgresql-server-dev-12 \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir -p /tmp/pgtap \ + && cd /tmp/pgtap \ + && git clone https://github.com/theory/pgtap.git /tmp/pgtap \ + && make \ + && make install \ + && cpan TAP::Parser::SourceHandler::pgTAP + +ADD ./pgtap/initialize.sh /app/ +RUN chmod +x ./*.sh \ + && ./initializeDocker.sh diff --git a/plpgsql/docker-compose.yml b/plpgsql/docker-compose.yml index 60183e85..2aef278f 100644 --- a/plpgsql/docker-compose.yml +++ b/plpgsql/docker-compose.yml @@ -1,16 +1,20 @@ -version: '3' +version: '3.4' services: - database: - build: . + pgunit: + build: + context: . + target: pgunit ports: - "5432:5432" volumes: - .:/app/:z - admin: - image: adminer - links: - - database + pgtap: + build: + context: . + target: pgtap ports: - - "8081:8080" + - "5432:5432" + volumes: + - .:/app/:z diff --git a/plpgsql/pgtap/initialize.sh b/plpgsql/pgtap/initialize.sh new file mode 100644 index 00000000..7646180d --- /dev/null +++ b/plpgsql/pgtap/initialize.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +echo "Enable extension" +psql -d kata -c 'CREATE EXTENSION IF NOT EXISTS pgtap;'