-
Notifications
You must be signed in to change notification settings - Fork 218
/
Copy pathREADME.md
157 lines (107 loc) · 7.32 KB
/
README.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# PostgreSQL Container Images
[](https://github.com/sclorg/postgresql-container/actions/workflows/build-and-push.yml)
Images available on Quay.io are:
- CentOS 7 [postgresql-10](https://quay.io/repository/centos7/postgresql-10-centos7)
- CentOS 7 [postgresql-12](https://quay.io/repository/centos7/postgresql-12-centos7)
- CentOS 7 [postgresql-13](https://quay.io/repository/centos7/postgresql-13-centos7)
- CentOS Stream 8 [postgresql-10](https://quay.io/repository/sclorg/postgresql-10-c8s)
- CentOS Stream 8 [postgresql-13](https://quay.io/repository/sclorg/postgresql-13-c8s)
- CentOS Stream 8 [postgresql-15](https://quay.io/repository/sclorg/postgresql-15-c8s)
- CentOS Stream 9 [postgresql-13](https://quay.io/repository/sclorg/postgresql-13-c9s)
- CentOS Stream 9 [postgresql-15](https://quay.io/repository/sclorg/postgresql-15-c9s)
- Fedora [postgresql-11](https://quay.io/repository/fedora/postgresql-11)
- Fedora [postgresql-12](https://quay.io/repository/fedora/postgresql-12)
- Fedora [postgresql-13](https://quay.io/repository/fedora/postgresql-13)
- Fedora [postgresql-14](https://quay.io/repository/fedora/postgresql-14)
- Fedora [postgresql-15](https://quay.io/repository/fedora/postgresql-15)
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](https://docs.okd.io/latest/openshift_images/using-templates.html).
To contribute to this project, please review [the Contribution Guidelines](https://github.com/sclorg/welcome/blob/master/contribution.md).
For learning more information about concepts used in these container images, see the [Landing page](https://github.com/sclorg/welcome).
## Versions
PostgreSQL versions currently supported are:
- [postgresql-10](https://github.com/sclorg/postgresql-container/tree/master/10)
- [postgresql-12](https://github.com/sclorg/postgresql-container/tree/master/12)
- [postgresql-13](https://github.com/sclorg/postgresql-container/tree/master/13)
- [postgresql-14](https://github.com/sclorg/postgresql-container/tree/master/14)
- [postgresql-15](https://github.com/sclorg/postgresql-container/tree/master/15)
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](https://access.redhat.com/containers/#/registry.access.redhat.com/rhel9/postgresql-13).
To download the image, execute the following command:
```bash
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.
```bash
$ 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:
```bash
$ podman pull https://quay.io/repository/sclorg/postgresql-13-c9s
```
To build a PostgreSQL image from scratch, perform the following steps:
```bash
$ 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](https://github.com/devexp-db/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](https://github.com/devexp-db/distgen/).
Additionally, for testing purposes, install `go-md2man` from this repository [go-md2man](https://github.com/cpuguy83/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:
- [PostgreSQL 10 Usage Documentation](https://github.com/sclorg/postgresql-container/tree/master/10)
- [PostgreSQL 12 Usage Documentation](https://github.com/sclorg/postgresql-container/tree/master/12)
- [PostgreSQL 13 Usage Documentation](https://github.com/sclorg/postgresql-container/tree/master/13)
- [PostgreSQL 14 Usage Documentation](https://github.com/sclorg/postgresql-container/tree/master/14)
- [PostgreSQL 15 Usage Documentation](https://github.com/sclorg/postgresql-container/tree/master/15)
For unsupported versions, you may refer to:
- [PostgreSQL 9.2](https://github.com/sclorg/postgresql-container/blob/f213e5d0/9.2)
- [PostgreSQL 9.4](https://github.com/sclorg/postgresql-container/blob/2ab68e86/9.4)
## 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.
```bash
$ cd postgresql
$ make test TARGET=rhel9 VERSIONS=13
```
- **CentOS Stream-based image**
```bash
$ cd postgresql
$ make test TARGET=c9s VERSIONS=13
```
- To run a specific subset of test cases, use the `TESTS` parameter:
```bash
$ 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`.