feat(docker): replace Redis with Valkey for open-source compliance

Replace redis:7-alpine with valkey/valkey:8-alpine across the management
compose stack. Valkey is the Linux Foundation-backed BSD-3-Clause fork,
maintaining full API compatibility with Redis 7.x.

Changes:
- Swap Docker image to valkey/valkey:8-alpine
- Rename service and container (redis -> valkey, nomad_redis -> nomad_valkey)
- Update health check to use valkey-cli
- Update REDIS_HOST env var to point to new service name
- Update sidecar-updater service list

AdonisJS reads REDIS_HOST from env, so zero application code changes
are needed. BullMQ job queues work identically on Valkey.

Closes #276

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Van Horn 2026-03-25 16:19:00 -07:00
parent 9a8378d63a
commit 3cbf7e0acf
No known key found for this signature in database
2 changed files with 9 additions and 9 deletions

View File

@ -41,13 +41,13 @@ services:
- DB_PASSWORD=replaceme
- DB_NAME=nomad
- DB_SSL=false
- REDIS_HOST=redis
# If you change the Redis port, make sure to update this accordingly
- REDIS_HOST=valkey
# If you change the Valkey port, make sure to update this accordingly
- REDIS_PORT=6379
depends_on:
mysql:
condition: service_healthy
redis:
valkey:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
@ -83,14 +83,14 @@ services:
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7-alpine
container_name: nomad_redis
valkey:
image: valkey/valkey:8-alpine
container_name: nomad_valkey
restart: unless-stopped
volumes:
- /opt/project-nomad/redis:/data # Persist Redis data on the host. This path can be changed if needed, just make sure it's writable by the container. Host persistence is important for Redis to ensure your data isn't lost when the container is removed or updated.
- /opt/project-nomad/valkey:/data # Persist Valkey data on the host. This path can be changed if needed, just make sure it's writable by the container. Host persistence is important for Valkey to ensure your data isn't lost when the container is removed or updated.
healthcheck:
test: ["CMD", "redis-cli", "ping"]
test: ["CMD", "valkey-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3

View File

@ -71,7 +71,7 @@ perform_update() {
log "Recreating containers individually (excluding updater)..."
# List of services to update (excluding updater)
SERVICES_TO_UPDATE="admin mysql redis dozzle"
SERVICES_TO_UPDATE="admin mysql valkey dozzle"
local current_progress=65
local progress_per_service=8 # (95 - 65) / 4 services ≈ 8% per service