Releases: heyvaldemar/sonarqube-traefik-letsencrypt-docker-compose
Release list
v1.9.0
Added
- Traefik's timeouts on the HTTPS entry point can be set from
.env.
TRAEFIK_READ_TIMEOUT,TRAEFIK_WRITE_TIMEOUTandTRAEFIK_IDLE_TIMEOUT
default to Traefik's own values (60s, 0s, 180s), so nothing changes unless
you set them. Traefik reads its static configuration from one source, here
the command in the compose file, and an override file can only replace that
command whole; a variable is the way to tune it and keep taking updates.
The same change was asked for in the Keycloak template, and every template in the fleet gets it at once.
v1.8.6
Security
sonarqube:26.9.0.129388-communitywas rebuilt upstream; the pin moved fromsha256:58b068af30bd…tosha256:4905574ab858…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.8.5
Fixed
- The application data restore merged instead of restoring. It cleared
/bitnami/sonarqube/, a path this stack does not have, then unpacked the
archive over the live/opt/sonarqube/data, so files created after the
backup survived it. The database restore carried the database name, user
and backup directory as literals, wrong for any.envthat sets them
differently.
Both scripts now take every path, name and credential from the running
backups container, accept the backup file name as an argument, stop the
application while they work and start it again whatever happens, and CI
runs them: a marker written after a backup must be gone once that backup
is restored, for the database and for the application data. The tests
used to restore with their own copy of the commands, which is how the
shipped scripts could drift while every run was green.
Changed
- The freshness check has its own workflow, Pin Freshness. It ran inside Deployment Verification, whose badge is the one at the top of this README. Across the fleet, nine red runs in ten were a pin one version behind - which the fleet's triage moves within the day - and a reader cannot tell that from a stack that does not boot. The badge now says whether the stack boots. The job itself is unchanged.
v1.8.4
Security
traefik:3.7was rebuilt upstream; the pin moved fromsha256:1c32e7c36820…tosha256:24841fe2de73…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.postgres:17-alpinewas rebuilt upstream; the pin moved fromsha256:f02121de6f74…tosha256:b0f9560a2de0…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.8.3
Security
traefik:3.7was rebuilt upstream; the pin moved fromsha256:f86a2cab1b5c…tosha256:1c32e7c36820…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.postgres:17-alpinewas rebuilt upstream; the pin moved fromsha256:18cfe3ef5e68…tosha256:f02121de6f74…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.8.2
Security
sonarqube:26.9.0.129388-communitywas rebuilt upstream; the pin moved fromsha256:aa7146fd72ef…tosha256:58b068af30bd…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.8.1
Security
sonarqube:26.9.0.129388-communitywas rebuilt upstream; the pin moved fromsha256:62930c7f5105…tosha256:aa7146fd72ef…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.8.0
Added
update.sh: move between release tags on purpose. It updates to the latest release (a combination this repository's CI has booted and smoke-tested), refuses to cross a major version unattended, refuses to run over local changes, and names any new required variable before anything has moved.--dry-runsays what would happen.
Upgrading
git pull (or ./update.sh). Nothing running changes: this release adds or extends the update script and touches no image pin.
Full history in CHANGELOG.md.
v1.7.0
Fixed
- A backup interrupted halfway no longer looks like a good one. The loop
already renamed a failed dump to.failedso nothing would restore from it,
but that rename only runs if the shell lives long enough to reach it. Stop
the container mid-dump and it does not: the truncated file keeps the name a
finished backup would have, and it is the newest one, which is exactly what
the restore script and the end-to-end test pick. Every backup is now written
to<name>.partialand renamed only after the dump succeeds, so the real
name never exists unless the file behind it is complete. Verified by killing
a dump in flight: before, the restore path selected a file that failed
gzip -t; after, it finds nothing to select.
v1.6.0
Added
- A shutdown grace period for PostgreSQL. Docker stops a container with
SIGTERM and ten seconds, then SIGKILL. That default is not always enough:
PostgreSQL has a checkpoint to write, MariaDB has InnoDB to flush, and Redis
saves its dataset on the way out. Killed halfway, the next start does crash
recovery, and a Redis holding another application's file locks leaves them
behind for a person to clear by hand. Sixty seconds now, overridable per
service with<PREFIX>_STOP_GRACE_PERIODin.env. The backup sidecar is
deliberately left alone: its failure mode is a truncated dump file, which a
longer grace period does not fix.