Skip to content

Commit f779ded

Browse files
committed
feat: release PostgreSQL 18 image
1 parent 6970cca commit f779ded

10 files changed

Lines changed: 34 additions & 30 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Never commit .env or generated secrets.
33

44
IMAGE_NAME=postgresql
5-
APP_VERSION=16.14
5+
APP_VERSION=18.4
66
IMAGE_REVISION=mldm1
77
REGISTRY=ghcr.io/mildman1848
88
PLATFORMS=linux/amd64,linux/arm64

.github/workflows/docker.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
runs-on: ubuntu-latest
2424
env:
2525
IMAGE_NAME: postgresql
26-
APP_VERSION: 16.14
27-
IMAGE_REVISION: mldm2
28-
VERSION: 16.14-mldm2
26+
APP_VERSION: 18.4
27+
IMAGE_REVISION: mldm1
28+
VERSION: 18.4-mldm1
2929
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
3030
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
3131
GITLAB_REGISTRY_USER: ${{ secrets.GITLAB_REGISTRY_USER }}
@@ -117,6 +117,7 @@ jobs:
117117
VERSION=${{ env.VERSION }}
118118
APP_VERSION=${{ env.APP_VERSION }}
119119
IMAGE_REVISION=${{ env.IMAGE_REVISION }}
120+
UPSTREAM_PACKAGE=postgresql18
120121
VCS_REF=${{ github.sha }}
121122
cache-from: type=gha
122123
cache-to: type=gha,mode=max

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ All notable changes to this image are documented in this file.
66

77
### Added
88

9-
- Initial image version `16.14-mldm1` using upstream `16.14`.
9+
- Initial image version `18.4-mldm1` using upstream `18.4`.
1010
- Initial LinuxServer.io-style s6-overlay image for PostgreSQL.
1111
- Local `make` workflow for secure secret generation, linting, building, and smoke testing.
1212
- GitHub Actions for linting, Docker build, security scanning, Dependabot, and upstream monitoring.

Dockerfile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ FROM ghcr.io/linuxserver/baseimage-alpine:${LSIO_BASE_VERSION}
55

66
ARG LSIO_BASE_VERSION
77
ARG BUILD_DATE
8-
ARG APP_VERSION=16.14
9-
ARG IMAGE_REVISION=mldm2
10-
ARG VERSION=16.14-mldm2
8+
ARG APP_VERSION=18.4
9+
ARG IMAGE_REVISION=mldm1
10+
ARG VERSION=18.4-mldm1
1111
ARG VCS_REF
12+
ARG UPSTREAM_PACKAGE=postgresql18
1213

1314
LABEL build_version="Mildman1848 PostgreSQL version:- ${VERSION} Upstream:- ${APP_VERSION} Revision:- ${IMAGE_REVISION} Build-date:- ${BUILD_DATE}" \
1415
maintainer="Mildman1848" \
@@ -38,8 +39,8 @@ RUN \
3839
ca-certificates \
3940
curl \
4041
jq \
41-
postgresql16 \
42-
postgresql16-client \
42+
${UPSTREAM_PACKAGE} \
43+
${UPSTREAM_PACKAGE}-client \
4344
shadow \
4445
tzdata && \
4546
echo "**** cleanup ****" && \

Makefile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
.DEFAULT_GOAL := help
2-
SHELL := /usr/bin/env bash
2+
SHELL := /bin/bash
33

44
IMAGE_NAME ?= postgresql
5-
APP_VERSION ?= 16.14
6-
IMAGE_REVISION ?= mldm2
5+
APP_VERSION ?= 18.4
6+
IMAGE_REVISION ?= mldm1
77
VERSION ?= $(APP_VERSION)-$(IMAGE_REVISION)
88
IMAGE_TAG ?= $(VERSION)
99
REGISTRY ?= ghcr.io/mildman1848
@@ -26,7 +26,7 @@ PUID ?= $(shell id -u)
2626
PGID ?= $(shell id -g)
2727
TZ ?= Europe/Berlin
2828
FORCE ?= 0
29-
UPSTREAM_PACKAGE ?= postgresql16
29+
UPSTREAM_PACKAGE ?= postgresql18
3030
LSIO_BASE_IMAGE ?= ghcr.io/linuxserver/baseimage-alpine:3.24
3131
SBOM_FORMAT ?= spdx-json
3232
SBOM_OUTPUT ?= sbom/$(IMAGE_NAME)-$(IMAGE_TAG).spdx.json
@@ -103,15 +103,15 @@ require-image:
103103
@$(DOCKER) image inspect '$(IMAGE_REF)' >/dev/null 2>&1 || { echo "ERROR: image not found locally: $(IMAGE_REF)" >&2; echo "Run: make build DOCKER='$(DOCKER)'" >&2; exit 2; }
104104

105105
build: require-dockerfile ## Build local single-platform image with --load.
106-
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(LOAD_PLATFORM)' scripts/buildx-build.sh --load
106+
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' UPSTREAM_PACKAGE='$(UPSTREAM_PACKAGE)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(LOAD_PLATFORM)' scripts/buildx-build.sh --load
107107

108108
build-multiarch: require-dockerfile ## Build multiarch image without pushing.
109-
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(PLATFORMS)' scripts/buildx-build.sh
109+
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' UPSTREAM_PACKAGE='$(UPSTREAM_PACKAGE)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(PLATFORMS)' scripts/buildx-build.sh
110110

111111
build-manifest: build-multiarch ## Alias for local multiarch manifest validation build.
112112

113113
build-manifest-push: require-dockerfile ## Build and push multiarch image manifest.
114-
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(PLATFORMS)' scripts/buildx-build.sh --push
114+
@DOCKER='$(DOCKER)' IMAGE_NAME='$(REGISTRY)/$(IMAGE_NAME)' IMAGE_TAG='$(IMAGE_TAG)' VERSION='$(VERSION)' IMAGE_REVISION='$(IMAGE_REVISION)' APP_VERSION='$(APP_VERSION)' UPSTREAM_PACKAGE='$(UPSTREAM_PACKAGE)' DOCKERFILE='$(DOCKERFILE)' CONTEXT='$(CONTEXT)' PLATFORMS='$(PLATFORMS)' scripts/buildx-build.sh --push
115115

116116
inspect-manifest: ## Inspect a local/remote image manifest.
117117
@$(DOCKER) buildx imagetools inspect '$(IMAGE_REF)'
@@ -195,12 +195,12 @@ check-upstream baseimage-check: ## Print current pinned LSIO baseimage and Alpin
195195
@$(DOCKER) buildx imagetools inspect '$(LSIO_BASE_IMAGE)' | sed -n '1,80p'
196196
@echo ''
197197
@echo 'Alpine package signal for $(UPSTREAM_PACKAGE):'
198-
@$(DOCKER) run --rm alpine:3.24 sh -c 'apk update >/dev/null && apk search -x "$(UPSTREAM_PACKAGE)"'
198+
@$(DOCKER) run --rm alpine:3.24 sh -c 'apk update >/dev/null && apk search -x "$(UPSTREAM_PACKAGE)" "$(UPSTREAM_PACKAGE)-client"'
199199
@echo 'Upstream: https://www.postgresql.org/'
200200

201201
release-dry-run: ## Show tags/metadata that would be published.
202202
@printf 'Would publish image:\n %s\n' '$(IMAGE_REF)'
203-
@printf 'Additional expected tags:\n latest on default branch\n sha-$$(git rev-parse --short HEAD 2>/dev/null || echo unknown)\n'
203+
@printf 'Additional expected tags:\n latest on default branch\n sha-%s\n' "$$(git rev-parse --short HEAD 2>/dev/null || echo unknown)"
204204
@printf 'Platforms: %s\n' '$(PLATFORMS)'
205205

206206
release: ## Guarded release target; use workflow_dispatch/push=true first.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ This image follows the template versioning format:
4242
Current image version:
4343

4444
```text
45-
16.14-mldm1
45+
18.4-mldm1
4646
```
4747

48-
- Upstream application/package version: `16.14`
48+
- Upstream application/package version: `18.4`
4949
- Image revision: `mldm1`
5050

5151
## Local development helpers

UPSTREAM.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ Upstream status is tracked by `.github/workflows/upstream-monitor.yml`.
3030
Manual checks:
3131

3232
```bash
33-
docker run --rm alpine:3.24 sh -c 'apk update >/dev/null && apk info -v postgresql16'
33+
docker run --rm alpine:3.24 sh -c 'apk update >/dev/null && apk info -v postgresql18'
3434
```
3535

3636
## Current tracked version
3737

38-
- Upstream version: `16.14`
38+
- Upstream version: `18.4`
3939
- Image revision: `mldm1`
40-
- Combined image version: `16.14-mldm1`
40+
- Combined image version: `18.4-mldm1`
4141

4242
Packaging-only changes should increment the image revision while keeping the upstream version unchanged.

docs/make-targets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ make logs DOCKER='sudo docker'
2121
| Target | Purpose |
2222
|---|---|
2323
| `make info` | Print image metadata and effective refs. |
24-
| `make version` | Print `16.14-mldm1`. |
24+
| `make version` | Print `18.4-mldm1`. |
2525
| `make env-setup` | Create local `.env` from `.env.example`. |
2626
| `make env-validate` | Validate version/revision metadata. |
2727
| `make lint` | Static repo checks, s6 checks, private-term scan, Hadolint. |

docs/versioning.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ This image uses an LSIO-inspired combined version: preserve the upstream Postgre
99
Current version:
1010

1111
```text
12-
16.14-mldm1
12+
18.4-mldm1
1313
```
1414

1515
## Components
1616

1717
| Component | Meaning |
1818
|---|---|
19-
| `16.14` | PostgreSQL upstream/package version from Alpine `postgresql16`. |
19+
| `18.4` | PostgreSQL upstream/package version from Alpine `postgresql18`. |
2020
| `mldm1` | Local image packaging revision for that upstream version. |
2121

2222
`Mildman1848` is allowed as the public namespace/brand. Private household names must not appear in public artifacts.
@@ -32,10 +32,10 @@ Current version:
3232
The image exposes:
3333

3434
```text
35-
org.opencontainers.image.version=16.14-mldm1
35+
org.opencontainers.image.version=18.4-mldm1
3636
IMAGE_REVISION=mldm1
37-
APP_VERSION=16.14
38-
VERSION=16.14-mldm1
37+
APP_VERSION=18.4
38+
VERSION=18.4-mldm1
3939
```
4040

4141
Do not use shortened legacy variants of the packaging suffix. The project standard is explicitly `mldm<N>`.

scripts/buildx-build.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ VCS_REF="${VCS_REF:-$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown)
1212
VERSION="${VERSION:-${IMAGE_TAG}}"
1313
APP_VERSION="${APP_VERSION:-}"
1414
IMAGE_REVISION="${IMAGE_REVISION:-}"
15+
UPSTREAM_PACKAGE="${UPSTREAM_PACKAGE:-postgresql18}"
1516
ATTESTATIONS="${ATTESTATIONS:-true}"
1617

1718
extra_args=("$@")
@@ -40,6 +41,7 @@ exec ${DOCKER} buildx build \
4041
--build-arg VERSION="$VERSION" \
4142
--build-arg APP_VERSION="$APP_VERSION" \
4243
--build-arg IMAGE_REVISION="$IMAGE_REVISION" \
44+
--build-arg UPSTREAM_PACKAGE="$UPSTREAM_PACKAGE" \
4345
--build-arg VCS_REF="$VCS_REF" \
4446
--tag "${IMAGE_NAME}:${IMAGE_TAG}" \
4547
"${attestation_args[@]}" \

0 commit comments

Comments
 (0)