Skip to content

Latest commit

 

History

History
157 lines (107 loc) · 7.32 KB

README.md

File metadata and controls

157 lines (107 loc) · 7.32 KB

PostgreSQL Container Images

Build and push images to Quay.io registry

Images available on Quay.io are:

This repository provides Dockerfiles for PostgreSQL container images, optimized for use with OpenShift. These images are available in RHEL, Fedora, and CentOS-based variants.

For more information about using these images with OpenShift, please refer to the official OpenShift Documentation.

To contribute to this project, please review the Contribution Guidelines. For learning more information about concepts used in these container images, see the Landing page.

Versions

PostgreSQL versions currently supported are:

RHEL versions currently supported are:

  • RHEL7
  • RHEL8
  • RHEL9

CentOS versions currently supported are:

  • CentOS7
  • CentOS Stream 8
  • CentOS Stream 9

Installation

Choose either the CentOS Stream 9 or RHEL9-based image:

  • RHEL9 based image

    These images are available in the Red Hat Container Catalog. To download the image, execute the following command:

    podman pull registry.redhat.io/rhel9/postgresql-13

    To build a RHEL9-based image, ensure you run Docker build on a RHEL machine with a valid subscription.

    $ git clone --recursive https://github.com/sclorg/postgresql-container.git
    $ cd postgresql
    $ make build TARGET=rhel9 VERSIONS=13
  • CentOS Stream 9 based image

    These images are available on Quay.io. To download the image, execute the following command:

    $ podman pull https://quay.io/repository/sclorg/postgresql-13-c9s

    To build a PostgreSQL image from scratch, perform the following steps:

    $ git clone --recursive https://github.com/sclorg/postgresql-container.git
    $ cd postgresql
    $ make build TARGET=c9s VERSIONS=13

Note: While the installation steps utilize podman, you can substitute these calls with docker with the same arguments.

Warning: By omitting the VERSIONS parameter, the build/test action will be executed on all provided versions of PostgreSQL.

Contributing Guidelines

This repository utilizes distgen for generating image source files. If you are interested in updating a Dockerfile, please modify the relevant sections in the specs/multispec.yml file and/or the Dockerfile.template (or other distgen files), and then execute make generate.

Before you begin, ensure that you have distgen installed by running dg --version. If distgen is not installed on your system, follow the installation guide available at distgen's GitHub repository. Additionally, for testing purposes, install go-md2man from this repository go-md2man or via dnf install go-md2man.

To contribute, please follow these steps:

  1. Fork the repository
  2. Run git submodule update --init to download the common submodule containing the common/common.mk makefile.
  3. Implement a new feature or bug fix in the templates (found in the src directory) or update values in the specs/multispec.yml file.
    • Note: If no changes are made to these directories, file regeneration is not necessary.
  4. Regenerate all files by executing make generate.
  5. Consider running CI tests, as described in the Test section below.
  6. Commit the files and generated files in two separated commits with a conventional commit message for each.
  7. Open a pull request for review!

Usage

For detailed information on the usage of specific PostgreSQL Dockerfiles, please refer to the corresponding usage documentation:

For unsupported versions, you may refer to:

Test

This repository includes a testing framework that verifies the basic functionality of the PostgreSQL image. Users can choose to test the image based on RHEL or CentOS Stream.

  • RHEL-based image

    To test a RHEL9-based PostgreSQL image, ensure you are running the test on a properly subscribed RHEL machine.

    $ cd postgresql
    $ make test TARGET=rhel9 VERSIONS=13
  • CentOS Stream-based image

    $ cd postgresql
    $ make test TARGET=c9s VERSIONS=13
  • To run a specific subset of test cases, use the TESTS parameter:

    $ cd postgresql
    $ make test VERSIONS=13 TESTS="run_general_tests run_replication_test"

Note: By omitting the VERSIONS parameter, the build/test action will be performed on all provided versions of PostgreSQL.

The test command is utilized from the common submodule. While it is possible to run make test-openshift-4, it is typically not necessary. All commands for the Makefile can be found in common/Makefile. The make test command will execute all tests required by the CI.

Enabling SSL/TLS for PostgreSQL container

For comprehensive information and instructions on enabling SSL/TLS, please refer to the examples/enable-ssl/README.md.