创建一个redis docker容器,在启动时使用现有rdb和加载模块?

创建一个redis docker容器,在启动时使用现有rdb和加载模块?,docker,redis,docker-compose,dockerfile,redistimeseries,Docker,Redis,Docker Compose,Dockerfile,Redistimeseries,我试图使用一个redis db启动一个docker容器,我有一个保存到本地机器的持久副本。 目前,我有一个docker容器使用此docker compose.yml加载redis,其中包含一个卷,但它没有找到我的redis.conf(包含loadmodule命令),它位于包含rdb文件的卷中 version: '3' services: redis: image: redis container_name: "redis" ports: - "6379:6

我试图使用一个redis db启动一个docker容器,我有一个保存到本地机器的持久副本。 目前,我有一个docker容器使用此
docker compose.yml
加载redis,其中包含一个卷,但它没有找到我的redis.conf(包含loadmodule命令),它位于包含rdb文件的卷中

version: '3'
services:
  redis:
    image: redis
    container_name: "redis"
    ports:
      - "6379:6379"
    volumes:
      - E:\redis_backup_conf:/data
这将开始加载RDB,但由于数据使用此模块而崩溃

我可以用一个新的redis db加载一个单独的docker容器,该容器使用以下dockerfile加载了time seriese模块。我的问题是我不知道如何同时做这两件事

是否有方法从docker-compose.yml调用dockerfile或在dockerfile中声明卷? 或者我应该创建自己的图像,我可以在docker-compose.yml中调用它? 任何帮助都会被感激的,我想我只是在兜圈子

dockerfile

# BUILD redisfab/redistimeseries:${VERSION}-${ARCH}-${OSNICK}

ARG REDIS_VER=6.0.1

# stretch|bionic|buster
ARG OSNICK=buster

# ARCH=x64|arm64v8|arm32v7
ARG ARCH=x64

#----------------------------------------------------------------------------------------------
FROM redisfab/redis:${REDIS_VER}-${ARCH}-${OSNICK} AS builder

ARG REDIS_VER

ADD ./ /build
WORKDIR /build

RUN ./deps/readies/bin/getpy2
RUN ./system-setup.py
RUN make fetch
RUN make build

#----------------------------------------------------------------------------------------------
FROM redisfab/redis:${REDIS_VER}-${ARCH}-${OSNICK}

ARG REDIS_VER

ENV LIBDIR /usr/lib/redis/modules
WORKDIR /data
RUN mkdir -p "$LIBDIR"

COPY --from=builder /build/bin/redistimeseries.so "$LIBDIR"

EXPOSE 6379
CMD ["redis-server", "--loadmodule", "/usr/lib/redis/modules/redistimeseries.so"]
编辑:

好的。。略有改进我可以在docker-compose.yml中调用redis timeseries映像

services:
  redis:
    image: redislabs/redistimeseries
    container_name: "redis"
    ports:
      - "6379:6379"
    volumes:
      - E:\redis_backup_conf:/data

这是一个开始,但是我仍然需要增加数据库的最大数量,我过去一直使用redis.conf来完成这项工作。

您可以让docker compose直接构建您的dockerfile。假设docker compose文件位于名为myproject的文件夹中。还假设dockerfile位于名为myredis的文件夹中,myredis位于myproject文件夹中。然后,您可以在docker compose文件中替换此行:

Image: redis
与:

这将构建并使用您的自定义图像

Build: ./myredis