试图从此图像雷迪莫德中设置Redis,并努力将以下代码转换为docker-compose
$ docker run \
-p 6379:6379 \
-v /home/user/data:/data \
-v /home/user/redis.conf:/usr/local/etc/redis/redis.conf \
redislabs/redismod \
/usr/local/etc/redis/redis.conf
我到现在为止所做的事:
version: "3.2"
services:
redis:
image: "redislabs/redismod"
container_name: 'redis-local'
hostname: 'redis-local'
volumes_from:
- redis_data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
args:
- /usr/local/etc/redis/redis.conf
restart: always
ports:
- "6379:6379"
volumes:
redis_data:
但我显然得到了以下错误ERROR: Service "redis" mounts volumes from "redis_data", which is not the name of a service or container.
,因为我没有传递最后一行/usr/local/etc/redis/redis.conf
第二个问题是,如何从下面翻译--loadmodule
和--dir
,这些不是Redis命令:
$ docker run \
-p 6379:6379 \
-v /home/user/data:/data \
redislabs/redismod \
--loadmodule /usr/lib/redis/modules/rebloom.so \
--dir /data
UPDATE I将我的docker-compose.yml文件更改为以下内容,并且它开始工作,但是看起来Redis没有看到redis.conf
文件并继续在默认模式下运行,我做错了什么?
version: "3.2"
services:
redis:
image: "redislabs/redismod"
container_name: 'redis-local'
hostname: 'redis-local'
volumes:
- redis_data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
build:
context: .
args:
- /usr/local/etc/redis/redis.conf
restart: always
ports:
- "6379:6379"
发布于 2021-03-13 00:22:24
第一个错误是因为您使用了volumes_from
而不是volumes
。第一个目标是从现有容器中获取卷配置。第二个定义卷的方法。在您的上一个版本中,redis_data
是一个坞卷,redis.conf
是一个绑定挂载。第二个问题是,您使用的是用于构建映像的build
和args
,但是看起来您想要运行一个命令。
尝试:
version: "3.2"
services:
redis:
image: "redislabs/redismod"
container_name: 'redis-local'
hostname: 'redis-local'
volumes:
- redis_data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: usr/local/etc/redis/redis.conf
restart: always
ports:
- "6379:6379"
有关卷、绑定挂载和坞客撰写参考的更多信息,请参见:
https://stackoverflow.com/questions/66608462
复制相似问题