Docker Redis-设定数据种子-无法通过Dockerfile或通过外壳脚本执行redis-cli

z3yyvxxp  于 2022-09-21  发布在  Docker
关注(0)|答案(0)|浏览(166)

通过docker-compose(使用My Redis Dockerfile)设置一个Redis示例,所有示例都在运行。

现在,我正在尝试在容器启动后为Redis示例设定数据种子。

(1)尝试在Dockerfile(由docker-compose运行)中直接运行redis-cli

FROM redis:6.2.5
COPY ./redis.conf /test_dir/
COPY ./seed.txt /test_dir/

ENTRYPOINT ["redis-server", "/test_dir/redis.conf"]
RUN cat /test_dir/seed.txt | redis-cli -a <password> --pipe

这将抛出Could not connect to Redis at 127.0.0.1:6379: Connection refused

(2)略有不同的Dockerfile,在容器启动后执行的shell脚本中运行相同的命令:

FROM redis:6.2.5
COPY ./redis.conf /test_dir/
COPY ./seed.txt /test_dir/
COPY ./init.sh /test_dir/

ENTRYPOINT ["redis-server", "/test_dir/redis.conf"]
RUN . /test_dir/init.sh

# init.sh

sleep 10  # ensure Redis server is up and running
cat /test_dir/seed.txt | redis-cli -a <password> --pipe

执行shell脚本,它等待10秒,我确认在触发数据导入之前服务器已启动并运行,但Redis抛出相同的错误。

备注:

(1) I've also disabled `protected-mode` and removed `requirepass`, but redis-cli can not connect
(2) when I jump into the container and manually execute the command, it DOES WORK !

那么,如何从Dockerfile运行redis-cli或通过shell脚本运行redis-cli,或者推荐使用什么方法作为Docker Redis示例的种子?

谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题