首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在初始化时使用现有的rdb和加载模块创建一个redis docker容器?

在初始化时使用现有的rdb和加载模块创建一个redis docker容器?
EN

Stack Overflow用户
提问于 2020-06-20 10:09:23
回答 1查看 539关注 0票数 0

我正在尝试使用redis db启动docker容器,并将其永久副本保存到本地计算机。我目前有一个docker容器正在使用这个docker-compose.yml加载redis和一个卷,但是它遗漏了我的redis.conf (它包含loadmodule命令)位于卷和rdb文件中

代码语言:javascript
复制
version: '3'
services:
  redis:
    image: redis
    container_name: "redis"
    ports:
      - "6379:6379"
    volumes:
      - E:\redis_backup_conf:/data

这将开始加载RDB,但由于数据使用此time series模块而崩溃。

我可以使用新的redis db加载一个单独的docker容器,该数据库使用以下dockerfile加载了时间序列模块。我的问题是我想不出如何同时做这两件事!

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

dockerfile

代码语言:javascript
复制
# 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图像

代码语言:javascript
复制
services:
  redis:
    image: redislabs/redistimeseries
    container_name: "redis"
    ports:
      - "6379:6379"
    volumes:
      - E:\redis_backup_conf:/data

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-20 13:52:55

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

代码语言:javascript
复制
Image: redis

通过以下方式:

代码语言:javascript
复制
Build: ./myredis

它将构建并使用您的自定义映像

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

https://stackoverflow.com/questions/62480850

复制
相关文章

相似问题

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