Skip to content

overriding redis.conf and networking issues #420

Open
@opyate

Description

@opyate

I'm using Redis 7.4.0 via docker compose. This repo contains no redis.conf, so presumably you use the default conf in the main repo.

I downloaded the default conf at that tag.

Then tell compose to use it:

   redis:
     image: redis:7.4.0
+    command:
+      - redis-server
+      - /usr/local/etc/redis/redis.conf
+    volumes:
+    - ./redis:/usr/local/etc/redis
+    ports:
+      - 6379:6379

However, now for some reason, I get this error from my Python app:

redis.exceptions.ConnectionError: Error 111 connecting to redis:6379. Connection refused.

I still haven't made any changes to redis.conf.

Troubleshooting

Trying to determine if the "default default" config and "supplied default" config differs:

Before compose.yml change:

docker compose exec -ti redis redis-cli config get "*" > redis/config-supplied.txt

After compose.yml change:

docker compose exec -ti redis redis-cli config get "*" > redis/config-default.txt

Some pre-processing, as the keys are unordered:

paste -d ':' - - < redis/config-supplied.txt | sort > redis/sorted-config-supplied.txt
paste -d ':' - - < redis/config-default.txt | sort > redis/sorted-config-default.txt

Lo and behold, the 2 outputs differ:

% diff  redis/sorted-config-default.txt redis/sorted-config-supplied.txt                         
28c28
< bind:* -::*
---
> bind:127.0.0.1 -::1
113c113
< pidfile:
---
> pidfile:/var/run/redis_6379.pid
117c117
< protected-mode:no
---
> protected-mode:yes

I know the PID is irrelevant w.r.t docker and daemonisation, but the bind and protected-mode configs are the breaking change here.

Commenting all binds now gives:

redis.exceptions.ConnectionError: Error 104 while writing to socket. Connection reset by peer.

Changing bind to just be bind:* -::* gives:

redis.exceptions.ConnectionError: Error -3 connecting to redis:6379. Temporary failure in name resolution.

What worked in the end was having protected-mode:no and all binds commented.

If requested, I can send a PR to the doc for the Redis Docker Hub to have the "Additionally, if you want to use your own redis.conf ..." section reflect the above guidance?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions