Docker images for postgres extended with management bash scripts.
1# Variables
2# ------------------------------------------------------------------------------
3POSTGRES_IMAGE_ID := quay.io/marcosgabarda/postgres
4POSTGIS_IMAGE_ID := quay.io/marcosgabarda/postgis
5
6# Versions to build
7# ------------------------------------------------------------------------------
8POSTGRES_VERSIONS := 12 13 14 15 16 17
9POSTGRES_LATEST_VERSION := 18
10POSTGIS_VERSIONS := 12-3.0 13-3.1 14-3.4 15-3.4 16-3.5 17-3.6
11POSTGIS_LATEST_VERSION := 18-3.6
12
13# Docker command
14# ------------------------------------------------------------------------------
15DOCKER := podman
16
17.PHONY: build-postgres push-postgres build-postgis push-postgis build push
18
19build-postgres:
20 @for version in $(POSTGRES_VERSIONS) ; do \
21 ${DOCKER} build . -f ./postgres/Dockerfile --tag ${POSTGRES_IMAGE_ID}:$$version --build-arg POSTGRES_VERSION=$$version --platform linux/amd64 ; \
22 done
23 ${DOCKER} build . -f ./postgres/Dockerfile --tag ${POSTGRES_IMAGE_ID}:${POSTGRES_LATEST_VERSION} --tag ${POSTGRES_IMAGE_ID}:latest --build-arg POSTGRES_VERSION=${POSTGRES_LATEST_VERSION} --platform linux/amd64
24
25push-postgres: build-postgres
26 @for version in $(POSTGRES_VERSIONS) ; do \
27 ${DOCKER} push ${POSTGRES_IMAGE_ID}:$$version ; \
28 done
29 ${DOCKER} push ${POSTGRES_IMAGE_ID}:${POSTGRES_LATEST_VERSION}
30 ${DOCKER} push ${POSTGRES_IMAGE_ID}:latest
31
32build-postgis:
33 @for version in $(POSTGIS_VERSIONS) ; do \
34 ${DOCKER} build . -f ./postgis/Dockerfile --tag ${POSTGIS_IMAGE_ID}:$$version --tag ${POSTGIS_IMAGE_ID}:$(word 1, $(subst -, ,$$version)) --build-arg POSTGIS_VERSION=$$version --platform linux/amd64 ; \
35 done
36 ${DOCKER} build . -f ./postgis/Dockerfile --tag ${POSTGIS_IMAGE_ID}:${POSTGIS_LATEST_VERSION} --tag ${POSTGIS_IMAGE_ID}:$(word 1, $(subst -, ,$(POSTGIS_LATEST_VERSION))) --tag ${POSTGIS_IMAGE_ID}:latest --build-arg POSTGIS_VERSION=${POSTGIS_LATEST_VERSION} --platform linux/amd64
37
38push-postgis: build-postgis
39 @for version in $(POSTGIS_VERSIONS) ; do \
40 ${DOCKER} push ${POSTGIS_IMAGE_ID}:$$version ; \
41 ${DOCKER} push ${POSTGIS_IMAGE_ID}:$(word 1, $(subst -, ,$$version)); \
42 done
43 ${DOCKER} push ${POSTGIS_IMAGE_ID}:${POSTGIS_LATEST_VERSION}
44 ${DOCKER} push ${POSTGIS_IMAGE_ID}:$(word 1, $(subst -, ,${POSTGIS_LATEST_VERSION}))
45 ${DOCKER} push ${POSTGIS_IMAGE_ID}:latest
46
47build: build-postgres build-postgis
48
49push: push-postgres push-postgis