初始化 Redis 值作为 docker-compose 的一部分

Initializing Redis values as part of a docker-compose

我有一个包含多个服务的docker-compose设置,其中我有一个redis服务。

我将它用于我的持续集成流程和系统的手动本地运行。我希望能够为这些非生产流程的 redis 设置初始内容。

我考虑过在我的 docker-compose 文件中设置 an entrypoint 并添加我的脚本,但我不想覆盖默认入口点。我该如何将我的脚本连接到它?

我需要的实际脚本可能只包含 4 个命令:

是否有比覆盖入口点更简洁的解决方案?

如果它是您的持续集成流程的一部分,那么为什么不在您的流程中添加一个额外的步骤,即在您启动 docker-compose 环境后,运行将此脚本针对 redis 容器?

这将是这个逻辑的合适位置,因为您的容器可能不应该负责填充它们自己的状态,这应该是您周围的 build/deploy 脚本的任务。


对于手动本地 运行s,最好的办法仍然是编写此 'outside' 容器的脚本:从使用 docker-compose up 用于本地 运行s 到自定义 up.sh 脚本,它会在您每次 运行 时为您设置此状态(可能将任何脚本参数传递给内部的 docker-compose 命令)。