开发空间工具。如何在 --force-build 模式下部署依赖
Devspace tool. How to deploy dependeny in --force-build mode
我使用 DevSpace 工具将我的服务部署到 minikube 本地集群中。
我有两个服务要部署:auth-handler 和 mysql;
auth-handler 依赖于 devspace.xml 中的 my-sql。所以它无法启动,直到 mysql 还没有部署。
auth-handler
dependencies:
- source:
path: ../mysql
namespace: databases
mysql有形象舞台。我在 Dockerfile 中的哪个位置执行逻辑以通过一些数据启动数据库。
images:
backend:
image: registry.kube-system.svc.cluster.local/mysql
tags:
- local
dockerfile: ./mysql/Dockerfile
第一次使用,效果很好。但是例如,当我第二次重新部署服务时 mysql image stage for mysql 被跳过,因为如果 DevSpace 已经成功构建,它会缓存图像阶段。所以我的数据库此时没有初始化,因为跳过了图像阶段。
我可以用-b / --force-build
手动部署mysql来强制部署mysql图像阶段的启动,但我不需要手动部署 mysql。我需要启动 auth-handler 的部署,它将启动部署 mysql 在 -b / --force-build``-b / --force-build
模式下。
我建议在 devspace.yaml 的 hooks
部分添加一个钩子,而不是在 Dockerfile 中填充数据库,这可以 运行 devspace enter -c [mysql] -- command-to-populate-db
或者,添加一个初始化容器来填充数据库。这样会灵活很多。
有关挂钩的更多详细信息,请查看 DevSpace 文档:https://devspace.sh/cli/docs/configuration/hooks/basics
我使用 DevSpace 工具将我的服务部署到 minikube 本地集群中。
我有两个服务要部署:auth-handler 和 mysql;
auth-handler 依赖于 devspace.xml 中的 my-sql。所以它无法启动,直到 mysql 还没有部署。
auth-handler
dependencies:
- source:
path: ../mysql
namespace: databases
mysql有形象舞台。我在 Dockerfile 中的哪个位置执行逻辑以通过一些数据启动数据库。
images:
backend:
image: registry.kube-system.svc.cluster.local/mysql
tags:
- local
dockerfile: ./mysql/Dockerfile
第一次使用,效果很好。但是例如,当我第二次重新部署服务时 mysql image stage for mysql 被跳过,因为如果 DevSpace 已经成功构建,它会缓存图像阶段。所以我的数据库此时没有初始化,因为跳过了图像阶段。
我可以用-b / --force-build
手动部署mysql来强制部署mysql图像阶段的启动,但我不需要手动部署 mysql。我需要启动 auth-handler 的部署,它将启动部署 mysql 在 -b / --force-build``-b / --force-build
模式下。
我建议在 devspace.yaml 的 hooks
部分添加一个钩子,而不是在 Dockerfile 中填充数据库,这可以 运行 devspace enter -c [mysql] -- command-to-populate-db
或者,添加一个初始化容器来填充数据库。这样会灵活很多。
有关挂钩的更多详细信息,请查看 DevSpace 文档:https://devspace.sh/cli/docs/configuration/hooks/basics