mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 18:14:26 +00:00
Update Postgres Docker scripts to build/tag images automatically
This commit is contained in:
57
.github/workflows/docker.yml
vendored
57
.github/workflows/docker.yml
vendored
@@ -196,3 +196,60 @@ jobs:
|
|||||||
# Use tags / labels provided by 'docker/metadata-action' above
|
# Use tags / labels provided by 'docker/metadata-action' above
|
||||||
tags: ${{ steps.meta_build_solr.outputs.tags }}
|
tags: ${{ steps.meta_build_solr.outputs.tags }}
|
||||||
labels: ${{ steps.meta_build_solr.outputs.labels }}
|
labels: ${{ steps.meta_build_solr.outputs.labels }}
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# Build/Push the 'dspace/dspace-postgres-pgcrypto' image
|
||||||
|
###########################################################
|
||||||
|
# Get Metadata for docker_build_postgres step below
|
||||||
|
- name: Sync metadata (tags, labels) from GitHub to Docker for 'dspace-postgres-pgcrypto' image
|
||||||
|
id: meta_build_postgres
|
||||||
|
uses: docker/metadata-action@v4
|
||||||
|
with:
|
||||||
|
images: dspace/dspace-postgres-pgcrypto
|
||||||
|
tags: ${{ env.IMAGE_TAGS }}
|
||||||
|
flavor: ${{ env.TAGS_FLAVOR }}
|
||||||
|
|
||||||
|
- name: Build and push 'dspace-postgres-pgcrypto' image
|
||||||
|
id: docker_build_postgres
|
||||||
|
uses: docker/build-push-action@v3
|
||||||
|
with:
|
||||||
|
# Must build out of subdirectory to have access to install script for pgcrypto
|
||||||
|
context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
platforms: ${{ env.PLATFORMS }}
|
||||||
|
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
||||||
|
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
||||||
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
# Use tags / labels provided by 'docker/metadata-action' above
|
||||||
|
tags: ${{ steps.meta_build_postgres.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta_build_postgres.outputs.labels }}
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# Build/Push the 'dspace/dspace-postgres-pgcrypto' image ('-loadsql' tag)
|
||||||
|
###########################################################
|
||||||
|
# Get Metadata for docker_build_postgres_loadsql step below
|
||||||
|
- name: Sync metadata (tags, labels) from GitHub to Docker for 'dspace-postgres-pgcrypto-loadsql' image
|
||||||
|
id: meta_build_postgres_loadsql
|
||||||
|
uses: docker/metadata-action@v4
|
||||||
|
with:
|
||||||
|
images: dspace/dspace-postgres-pgcrypto
|
||||||
|
tags: ${{ env.IMAGE_TAGS }}
|
||||||
|
# Suffix all tags with "-loadsql". Otherwise, it uses the same
|
||||||
|
# tagging logic as the primary 'dspace/dspace-postgres-pgcrypto' image above.
|
||||||
|
flavor: ${{ env.TAGS_FLAVOR }}
|
||||||
|
suffix=-loadsql
|
||||||
|
|
||||||
|
- name: Build and push 'dspace-postgres-pgcrypto-loadsql' image
|
||||||
|
id: docker_build_postgres_loadsql
|
||||||
|
uses: docker/build-push-action@v3
|
||||||
|
with:
|
||||||
|
# Must build out of subdirectory to have access to install script for pgcrypto
|
||||||
|
context: ./dspace/src/main/docker/dspace-postgres-pgcrypto-curl/
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
platforms: ${{ env.PLATFORMS }}
|
||||||
|
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
||||||
|
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
||||||
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
# Use tags / labels provided by 'docker/metadata-action' above
|
||||||
|
tags: ${{ steps.meta_build_postgres_loadsql.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta_build_postgres_loadsql.outputs.labels }}
|
@@ -62,13 +62,16 @@ services:
|
|||||||
while (!</dev/tcp/dspacedb/5432) > /dev/null 2>&1; do sleep 1; done;
|
while (!</dev/tcp/dspacedb/5432) > /dev/null 2>&1; do sleep 1; done;
|
||||||
/dspace/bin/dspace database migrate
|
/dspace/bin/dspace database migrate
|
||||||
catalina.sh run
|
catalina.sh run
|
||||||
# DSpace database container
|
# DSpace PostgreSQL database container
|
||||||
dspacedb:
|
dspacedb:
|
||||||
container_name: dspacedb
|
container_name: dspacedb
|
||||||
|
# Uses a custom Postgres image with pgcrypto installed
|
||||||
|
image: "${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-7_x}"
|
||||||
|
build:
|
||||||
|
# Must build out of subdirectory to have access to install script for pgcrypto
|
||||||
|
context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/
|
||||||
environment:
|
environment:
|
||||||
PGDATA: /pgdata
|
PGDATA: /pgdata
|
||||||
# Uses a custom Postgres image with pgcrypto installed
|
|
||||||
image: dspace/dspace-postgres-pgcrypto
|
|
||||||
networks:
|
networks:
|
||||||
dspacenet:
|
dspacenet:
|
||||||
ports:
|
ports:
|
||||||
@@ -77,6 +80,7 @@ services:
|
|||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
|
# Keep Postgres data directory between reboots
|
||||||
- pgdata:/pgdata
|
- pgdata:/pgdata
|
||||||
# DSpace Solr container
|
# DSpace Solr container
|
||||||
dspacesolr:
|
dspacesolr:
|
||||||
|
@@ -10,7 +10,7 @@ version: "3.7"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
dspacedb:
|
dspacedb:
|
||||||
image: dspace/dspace-postgres-pgcrypto:loadsql
|
image: dspace/dspace-postgres-pgcrypto:dspace-7_x-loadsql
|
||||||
environment:
|
environment:
|
||||||
# This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
|
# This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
|
||||||
- LOADSQL=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql
|
- LOADSQL=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql
|
||||||
|
@@ -6,14 +6,20 @@
|
|||||||
# http://www.dspace.org/license/
|
# http://www.dspace.org/license/
|
||||||
#
|
#
|
||||||
|
|
||||||
# This will be deployed as dspace/dspace-postgres-pgcrpyto:loadsql
|
# To build for example use:
|
||||||
FROM postgres:11
|
# docker build --build-arg POSTGRES_VERSION=11 --build-arg POSTGRES_PASSWORD=mypass -f ./dspace/src/main/docker/dspace-postgres-pgcrypto-curl/Dockerfile .
|
||||||
|
# This will be published as dspace/dspace-postgres-pgcrypto:$DSPACE_VERSION-loadsql
|
||||||
|
|
||||||
|
ARG POSTGRES_VERSION=11
|
||||||
|
ARG POSTGRES_PASSWORD=dspace
|
||||||
|
|
||||||
|
FROM postgres:${POSTGRES_VERSION}-alpine
|
||||||
|
|
||||||
ENV POSTGRES_DB dspace
|
ENV POSTGRES_DB dspace
|
||||||
ENV POSTGRES_USER dspace
|
ENV POSTGRES_USER dspace
|
||||||
ENV POSTGRES_PASSWORD dspace
|
|
||||||
|
# Install curl which is necessary to load SQL file
|
||||||
|
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Load a SQL dump. Set LOADSQL to a URL for the sql dump file.
|
# Load a SQL dump. Set LOADSQL to a URL for the sql dump file.
|
||||||
RUN apt-get update && apt-get install -y curl
|
|
||||||
|
|
||||||
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
|
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
|
||||||
|
@@ -6,13 +6,17 @@
|
|||||||
# http://www.dspace.org/license/
|
# http://www.dspace.org/license/
|
||||||
#
|
#
|
||||||
|
|
||||||
# This will be deployed as dspace/dspace-postgres-pgcrpyto:latest
|
# To build for example use:
|
||||||
FROM postgres:11
|
# docker build --build-arg POSTGRES_VERSION=11 --build-arg POSTGRES_PASSWORD=mypass -f ./dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile .
|
||||||
|
# This will be published as dspace/dspace-postgres-pgcrypto:$DSPACE_VERSION
|
||||||
|
|
||||||
|
ARG POSTGRES_VERSION=11
|
||||||
|
ARG POSTGRES_PASSWORD=dspace
|
||||||
|
|
||||||
|
FROM postgres:${POSTGRES_VERSION}-alpine
|
||||||
|
|
||||||
ENV POSTGRES_DB dspace
|
ENV POSTGRES_DB dspace
|
||||||
ENV POSTGRES_USER dspace
|
ENV POSTGRES_USER dspace
|
||||||
ENV POSTGRES_PASSWORD dspace
|
|
||||||
|
|
||||||
RUN apt-get update
|
|
||||||
|
|
||||||
|
# Copy over script which will initialize database and install pgcrypto extension
|
||||||
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
|
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
|
||||||
|
Reference in New Issue
Block a user