Skip to content

docs: switch examples from Redis Stack to Redis 8 - #361

Open
ClaireXi99 wants to merge 1 commit into
redis:mainfrom
ClaireXi99:docs/switch-examples-to-redis-8
Open

docs: switch examples from Redis Stack to Redis 8#361
ClaireXi99 wants to merge 1 commit into
redis:mainfrom
ClaireXi99:docs/switch-examples-to-redis-8

Conversation

@ClaireXi99

@ClaireXi99 ClaireXi99 commented Aug 29, 2026

Copy link
Copy Markdown

Fixes #287

Redis 8 ships the query engine and JSON support this project needs, so the user-facing examples should no longer steer people toward Redis Stack images. This updates the three places named in the issue, plus two stale wording references that the change would otherwise leave inaccurate.

Changes

File Change
V0/docs/quick-start.md docker run now uses redis:8 (container renamed redis-stackredis); production compose snippet uses redis:8
V0/docker-compose.yml redis/redis-stack-serverredis, and REDIS_ARGScommand:
V0/docker-compose-task-workers.yml same as above
V0/AGENTS.md two stale "Redis Stack" mentions describing docker-compose up redis

Why this is more than an image-tag swap

The two compose files configured persistence like this:

image: redis/redis-stack-server:${REDIS_VERSION:-latest}
environment:
  - REDIS_ARGS=--appendonly yes

REDIS_ARGS is a Redis Stack image feature. It is documented only under Redis Stack's Docker page ("To pass in arbitrary configuration changes, you can set any of these environment variables: REDIS_ARGS: extra arguments for Redis"), and the official redis image's entrypoint never reads it — that entrypoint only reflows leading-dash arguments onto redis-server and honors SKIP_DROP_PRIVS / SKIP_FIX_PERMS.

So changing only the image tag would have left REDIS_ARGS as dead config and silently dropped AOF persistence. I moved the flag to a command: override instead:

image: redis:${REDIS_VERSION:-8}
command: [ "redis-server", "--appendonly", "yes" ]

Verified against live containers

Setup CONFIG GET appendonly
redis/redis-stack-server:latest + REDIS_ARGS=--appendonly yes (what this repo had) yes
redis:8 + REDIS_ARGS=--appendonly yes (image-tag swap only) no
redis:8 + command: redis-server --appendonly yes (this PR) yes

The middle row is the regression this PR avoids.

Notes on two judgment calls

Kept the REDIS_VERSION knob rather than hardcoding redis:8, so the default is now redis:8 while existing overrides keep working. Worth flagging that the tag namespace changes meaning (it now names a redis tag rather than a redis-stack-server one). Happy to hardcode redis:8 if you would rather drop the variable.

Left .github/workflows/python-tests.yml alone. The issue notes the Redis Stack entry in the test matrix may be intentional for compatibility coverage, so I did not touch it — removing it would quietly reduce coverage inside a docs change.

The two V0/AGENTS.md edits are included because they document the exact docker-compose up redis command changed here, so leaving them would contradict both this change and AGENTS.md line 5 ("Do not use Redis Stack or other earlier versions of Redis"). Glad to split them out if you prefer.

Verification

Static checks:

  • pre-commit run passes on all four files (check-yaml, trailing-whitespace, end-of-file-fixer, typos; ruff skipped, no Python touched)
  • docker compose config redis renders image: redis:8 with the command: list and no leftover environment: key
  • Grepped the repo to confirm nothing else referenced the renamed redis-stack container, and that the only remaining "Redis Stack" strings are the CI matrix entry above and the prohibition in AGENTS.md line 5

Runtime checks, via docker compose up redis -d on the modified V0/docker-compose.yml (Docker 29.4.3):

  • CONFIG GET appendonlyyes, and /data/appendonlydir really contains appendonly.aof.manifest plus the base and incr files
  • healthcheck reaches healthy
  • PID 1 is redis-server running as uid 999 (redis), and /data plus the AOF files are owned by redis:redis — so the entrypoint's chown and privilege drop still happen with an explicit command:
  • MODULE LIST reports search (redisearch.so) and ReJSON (rejson.so), confirming redis:8 covers what this project needs

Possible follow-ups, deliberately not in this PR

Found while checking the above, all pre-existing on main:

  1. V0/tests/docker-compose.yml, V0/tests/docker-compose.amd64.yml and .devcontainer/docker-compose.yml already use redis:8 / redis:8.6 but still set REDIS_ARGS, so those settings are currently ignored — the same dead-config situation measured in the table above. The test ones are entangled with the CI matrix (REDIS_IMAGE is overridden per matrix leg, and REDIS_ARGS is honored on the Redis Stack leg), so that deserves its own change with CI runs behind it.
  2. V0/docker/standalone/supervisord.conf still passes --loadmodule .../redisearch.so, rejson.so, redisbloom.so, redistimeseries.so, while V0/Dockerfile.standalone is FROM redis:8.6 where those capabilities are built in.

Happy to open issues or PRs for either if useful.

Redis 8 ships the query engine and JSON support that this project needs,
so the user-facing examples should no longer point at Redis Stack images.

Replace the Redis Stack images in the quick-start guide and both compose
files with the official redis image, defaulting to 8.

Also move `--appendonly yes` from `REDIS_ARGS` into a `command:` override.
`REDIS_ARGS` is honored only by the Redis Stack images; the official redis
entrypoint ignores it, so swapping the image alone would have silently
dropped AOF persistence.

Update two stale "Redis Stack" mentions in V0/AGENTS.md that document the
`docker-compose up redis` command changed here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Switch examples from Redis Stack to Redis 8

1 participant