docker - 在 docker-compose 构建期间将数据加载到 redis
问题描述
我有一个由 docker-compose 启动的应用程序。在应用程序中,我有一个以持久模式配置的 redis 实例。在docker-compose build
我需要将数据加载到redis实例中。我有一个构建数据并将数据插入redis的lua脚本。但我不明白如何在docker-compose build
. 我尝试类似:
FROM redis:5
...
RUN redis-server /usr/local/etc/redis/redis.conf
RUN dataBuilder.lua
...
CMD ["redis-server", "/usr/local/etc/redis/redis.conf", "--appendonly yes"]
但docker-compose build
之后停止RUN redis-server /usr/local/etc/redis/redis.conf
如何启动redis并在其中上传数据docker-compose build
?
解决方案
您需要将./dataBuilder.lua
&redis-server /usr/local/etc/redis/redis.conf
命令放在 ENTRYPOINT 中。基本上,
- 在后台运行服务器
- 加载 LUA 文件
- 一旦 LUA 命令返回退出代码 0,在前台运行 redis 服务器,否则退出。
推荐阅读
- ruby-on-rails - Rails has_many 通过 HABTM 关系
- python - 如果标题没有更改,如何在更新帖子时防止更改 slug 值?
- azure - 基于 Azure AD 会话的身份验证
- python - Django StaticLiveServerTestCase 以及压缩的超表
- julia - 如何在 Flux.jl 中初始化权重
- typescript - 将通用属性合并到类
- node.js - 使用 pdfkit 打印条形码
- swift - SWIFT TASK CONTINUATION MISUSE:泄露了它的延续 - 代表?
- ios - 如何在 iOS 上的 AVPlayer 上预缓冲 CMAF 流中的多个视频部分?
- docker - 在第二个 docker-compose 文件中添加的服务是孤立的,在 docker-compose ps 输出中不可见