首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Redis (Stack)服务器设置Docker容器以使用配置文件?

如何使用Redis (Stack)服务器设置Docker容器以使用配置文件?
EN

Stack Overflow用户
提问于 2022-10-18 13:17:53
回答 2查看 128关注 0票数 0

我需要运行一个带有Redis预先配置为使用配置文件和ACL文件的Docker容器。我的Dockerfile (与redis.confusers.acl放在同一个文件夹中)如下:

代码语言:javascript
运行
复制
FROM redis/redis-stack:latest
WORKDIR /db
COPY redis.conf ./redis-stack.conf
COPY users.acl ./users.acl
ENV PORT=6379
EXPOSE 6379

我使用docker run -p 6379:6379 --mount type=volume,source=database-vol,target=/db,readonly=0 container_name运行容器,使用一个命名卷。

在此之后,Redis服务器启动,但是没有使用这些config/acl文件,而是使用一个默认的.conf,它似乎被放置在/opt/redis-stack/etc文件夹中。使用Dockerfile中的COPY将我的文件放在那个文件夹中没有帮助:文件在那里,但是服务器没有使用它们:redis-cli命令acl list只返回默认用户,这意味着忽略了我的.conf文件。

我知道有可能在docker run中使用--env REDIS_ARGS=""传递参数,但我不确定是否/哪些参数将设置配置文件。

如何使容器中的redis服务器使用我的文件?他们有可能在任意地点吗?

EN

Stack Overflow用户

回答已采纳

发布于 2022-10-18 15:09:36

经过一番努力,终于想出了办法。redis-stack-server (或者redis-server,如果您使用的是非堆栈映像)可执行文件已经在PATH中进行了配置,因此可以轻松地从Dockerfile中配置CMDRUN

要使用给定的配置文件运行服务器,我使用CMD [ "redis-stack-server", "redis.conf" ]。然后,完整的Dockerfile如下:

代码语言:javascript
运行
复制
FROM redis/redis-stack:latest 

WORKDIR /usr/local/db

COPY redis.conf ./redis.conf
COPY users.acl ./users.acl

ENV PORT=6379
EXPOSE 6379

CMD [ "redis-stack-server", "redis.conf" ]

这将启动具有给定配置的Redis Stack服务器,以及ACL文件中提供的用户。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74111667

复制
相关文章

相似问题

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