通过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示例的种子?
谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!