首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将这个运行停靠命令转换成坞-撰写命令?

如何将这个运行停靠命令转换成坞-撰写命令?
EN

Stack Overflow用户
提问于 2021-03-12 23:18:58
回答 1查看 445关注 0票数 0

试图从此图像雷迪莫德中设置Redis,并努力将以下代码转换为docker-compose

代码语言:javascript
运行
复制
$ 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

我到现在为止所做的事:

代码语言:javascript
运行
复制
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命令:

代码语言:javascript
运行
复制
$ 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文件并继续在默认模式下运行,我做错了什么?

代码语言:javascript
运行
复制
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"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-13 00:22:24

第一个错误是因为您使用了volumes_from而不是volumes。第一个目标是从现有容器中获取卷配置。第二个定义卷的方法。在您的上一个版本中,redis_data是一个坞卷,redis.conf是一个绑定挂载。第二个问题是,您使用的是用于构建映像的buildargs,但是看起来您想要运行一个命令。

尝试:

代码语言:javascript
运行
复制
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"

有关卷、绑定挂载和坞客撰写参考的更多信息,请参见:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66608462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档