gpt4 book ai didi

docker - 如何使用初始键值对数据在 docker 上运行 Consul?

转载 作者:行者123 更新时间:2023-12-02 17:29:02 25 4
gpt4 key购买 nike

我正在尝试在 docker 容器上旋转 Consul 服务器并将其用作我的 SpringBoot 云应用程序的配置服务器。为此,我想在 Consul 中有一些预先配置的数据(键值对)。

我在 docker-compose.yml 中的当前配置是:

  consul:
image: "progrium/consul:latest"
container_name: "consul"
ports:
- '9330:8300'
- '9400:8400'
- '9500:8500'
- '9600:53'
command: "-server -bootstrap -ui-dir /ui"

有没有办法预先填充键值对?

最佳答案

撰写

Compose 没有内置概念中的“任务”,但您可以在一个项目中使用多个 compose 文件设置它们。一个 docker-compose-init.yml可以定义任务,而不是长时间运行的服务,但您需要自己管理编排。我放了一个 example on my consul demo .

docker-compose up -d
docker-compose -f docker-compose-init.yml run consul_init

图像构建

您可以添加镜像构建 RUN添加数据的步骤。这里的复杂之处在于以与通常相同的方式运行服务器,但在后台运行,并将数据全部添加到 RUN 中。步。
FROM progrium/consul:latest
RUN set -uex; \
consul agent -server --bootstrap -data-dir /consul/data & \
let "timeout = $(date +%s) + 15"; \
while ! curl -f -s http://localhost:8500/v1/status/leader | grep "[0-9]:[0-9]"; do\
if [ $(date +%s) -gt $timeout ]; then echo "timeout"; exit 1; fi; \
sleep 1; \
done; \
consul kv put somekey somevalue;

图像启动

一些数据库向图像添加脚本以在启动时填充数据。这通常是为了让用户可以通过在运行时注入(inject)的环境变量来控制设置,例如 mysql/ postgres/ mongo .
FROM progrium/consul:latest
ENTRYPOINT my-entrypoint.sh

然后您的脚本启动服务器,设置数据,然后在最后继续像之前的图像一样。

关于docker - 如何使用初始键值对数据在 docker 上运行 Consul?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com