初始化 Redis 值作为 docker-compose 的一部分
Initializing Redis values as part of a docker-compose
我有一个包含多个服务的docker-compose设置,其中我有一个redis服务。
我将它用于我的持续集成流程和系统的手动本地运行。我希望能够为这些非生产流程的 redis 设置初始内容。
我考虑过在我的 docker-compose 文件中设置 an entrypoint 并添加我的脚本,但我不想覆盖默认入口点。我该如何将我的脚本连接到它?
我需要的实际脚本可能只包含 4 个命令:
- 打开redis cli
- 登录到特定的redis实例
- 设置所需的值
- 可能与 redis 实例断开连接?
是否有比覆盖入口点更简洁的解决方案?
如果它是您的持续集成流程的一部分,那么为什么不在您的流程中添加一个额外的步骤,即在您启动 docker-compose 环境后,运行将此脚本针对 redis 容器?
这将是这个逻辑的合适位置,因为您的容器可能不应该负责填充它们自己的状态,这应该是您周围的 build/deploy 脚本的任务。
对于手动本地 运行s,最好的办法仍然是编写此 'outside' 容器的脚本:从使用 docker-compose up
用于本地 运行s 到自定义 up.sh
脚本,它会在您每次 运行 时为您设置此状态(可能将任何脚本参数传递给内部的 docker-compose
命令)。
我有一个包含多个服务的docker-compose设置,其中我有一个redis服务。
我将它用于我的持续集成流程和系统的手动本地运行。我希望能够为这些非生产流程的 redis 设置初始内容。
我考虑过在我的 docker-compose 文件中设置 an entrypoint 并添加我的脚本,但我不想覆盖默认入口点。我该如何将我的脚本连接到它?
我需要的实际脚本可能只包含 4 个命令:
- 打开redis cli
- 登录到特定的redis实例
- 设置所需的值
- 可能与 redis 实例断开连接?
是否有比覆盖入口点更简洁的解决方案?
如果它是您的持续集成流程的一部分,那么为什么不在您的流程中添加一个额外的步骤,即在您启动 docker-compose 环境后,运行将此脚本针对 redis 容器?
这将是这个逻辑的合适位置,因为您的容器可能不应该负责填充它们自己的状态,这应该是您周围的 build/deploy 脚本的任务。
对于手动本地 运行s,最好的办法仍然是编写此 'outside' 容器的脚本:从使用 docker-compose up
用于本地 运行s 到自定义 up.sh
脚本,它会在您每次 运行 时为您设置此状态(可能将任何脚本参数传递给内部的 docker-compose
命令)。