Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ All customization options (use with caution):
| Variable | Flag | Default |
| -------- | ---- | ------- |
| `REDIS_DOCKER_IMAGE` | `--redis-docker-image` | `redis:7` |
| `REDIS_HOSTNAME` | `--redis-hostname` | `redis` |
| `REDIS_OPTIMIZED` | `--redis-optimized` | `false` (`true`/`false`) |

## Credits
Expand Down
8 changes: 8 additions & 0 deletions commands/host/redis-backend
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ function optimize_config() {
ddev dotenv set .ddev/.env.redis --redis-optimized=true
}

function change_hostname() {
[[ "${REDIS_HOSTNAME:-}" == "" ]] && return
ddev dotenv set .ddev/.env.redis --redis-hostname="$REDIS_HOSTNAME"
}

function cleanup() {
rm -f "$DDEV_APPROOT/.ddev/.env.redis"
rm -rf "$DDEV_APPROOT/.ddev/redis/"
Expand Down Expand Up @@ -82,10 +87,12 @@ case "$REDIS_DOCKER_IMAGE" in
valkey)
NAME="Valkey 8"
REDIS_DOCKER_IMAGE="valkey/valkey:8"
REDIS_HOSTNAME="valkey"
;;
valkey-alpine)
NAME="Valkey 8 Alpine"
REDIS_DOCKER_IMAGE="valkey/valkey:8-alpine"
REDIS_HOSTNAME="valkey"
;;
""|--help|-h)
show_help
Expand All @@ -99,6 +106,7 @@ esac
check_docker_image
cleanup
optimize_config
change_hostname
use_docker_image

echo
Expand Down
4 changes: 2 additions & 2 deletions commands/redis/redis-cli
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
## Aliases: redis

if [ -f /etc/redis/conf/security.conf ]; then
redis-cli -p 6379 -h redis -a redis --no-auth-warning $@
redis-cli -p 6379 -h "${REDIS_HOSTNAME:-redis}" -a redis --no-auth-warning $@
else
redis-cli -p 6379 -h redis $@
redis-cli -p 6379 -h "${REDIS_HOSTNAME:-redis}" $@
fi
4 changes: 2 additions & 2 deletions commands/redis/redis-flush
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
## Example: "ddev redis-flush"

if [ -f /etc/redis/conf/security.conf ]; then
redis-cli -p 6379 -h redis -a redis --no-auth-warning FLUSHALL ASYNC
redis-cli -p 6379 -h "${REDIS_HOSTNAME:-redis}" -a redis --no-auth-warning FLUSHALL ASYNC
else
redis-cli -p 6379 -h redis FLUSHALL ASYNC
redis-cli -p 6379 -h "${REDIS_HOSTNAME:-redis}" FLUSHALL ASYNC
fi
6 changes: 6 additions & 0 deletions docker-compose.redis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
redis:
container_name: ddev-${DDEV_SITENAME}-redis
image: ${REDIS_DOCKER_IMAGE:-redis:7}
hostname: ${REDIS_HOSTNAME:-redis}
# These labels ensure this service is discoverable by ddev.
labels:
com.ddev.site-name: ${DDEV_SITENAME}
Expand All @@ -16,6 +17,11 @@ services:
- "./redis:/etc/redis/conf"
- "redis:/data"
command: /etc/redis/conf/redis.conf
x-ddev:
describe-url-port: |
Backend: ${REDIS_DOCKER_IMAGE:-redis:7}
describe-info: |
Pass: <none>

volumes:
redis:
2 changes: 1 addition & 1 deletion install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ project_files:
- commands/redis/redis-cli
- commands/redis/redis-flush

ddev_version_constraint: '>= v1.24.3'
ddev_version_constraint: '>= v1.24.10'

post_install_actions:
- |
Expand Down
4 changes: 4 additions & 0 deletions redis/scripts/setup-redis-optimized-config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ services:
reservations:
cpus: "1.5"
memory: "512M"
x-ddev:
describe-info: |
User: redis
Pass: redis
EOF
fi

Expand Down
11 changes: 11 additions & 0 deletions tests/test.bats
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,21 @@ health_checks() {

run grep -F "${PROJNAME}" .ddev/redis/snapshots.conf
assert_output "dbfilename ${PROJNAME}.rdb"

run ddev describe
assert_success
assert_output --partial "Backend:"
assert_output --partial "User: redis"
assert_output --partial "Pass: redis"
else
for file in "${redis_optimized_files[@]}"; do
assert_file_not_exist "$file"
done

run ddev describe
assert_success
assert_output --partial "Backend:"
assert_output --partial "Pass: <none>"
fi

run ddev redis-cli "KEYS \*"
Expand Down