我使用DevSpace工具将我的服务部署到迷你本地集群中。
我有两个服务要部署:auth处理程序和mysql;
在devspace.xml中,auth-处理程序具有my的依赖关系。因此,在mysql尚未部署之前,它是无法启动的。
auth处理程序
dependencies:
- source:
path: ../mysql
namespace: databasesmysql有图像阶段。在Dockerfile中,我执行逻辑来通过某些数据启动DB。
images:
backend:
image: registry.kube-system.svc.cluster.local/mysql
tags:
- local
dockerfile: ./mysql/Dockerfile第一次,效果很好。但是,例如,当我重新部署服务时,第二次跳过用于mysql 的mysql映像阶段,因为如果已经成功构建了图像阶段,DevSpace就会缓存它。所以此时我的DB没有初始化,因为图像阶段跳过了。
我可以手动部署 mysql 和-b / --force-build,通过强制启动映像阶段部署mysql,但不需要手动部署mysql。我需要启动auth-handler的部署,它将启动以-b / --force-build``-b / --force-build模式部署mysql。
发布于 2021-08-05 16:42:03
与其在Dockerfile中填充数据库,我建议在devspace.yaml的devspace.yaml部分添加一个钩子来运行devspace enter -c [mysql] -- command-to-populate-db,或者添加一个init容器来填充数据库。这样会灵活得多。
有关钩子的详细信息,请查看DevSpace docs:https://devspace.sh/cli/docs/configuration/hooks/basics。
https://stackoverflow.com/questions/68651500
复制相似问题