bounty将在9小时后过期。回答此问题可获得+50声望奖励。TheGorgeousSeal希望引起更多关注此问题。
我正在尝试用Skaffold和K3D创建一个本地开发环境。
我的环境由多个Skaffold模块组成,每个模块都声明了一个dev profile。主skaffold.yaml
由多个requires语句组成,这些语句指向多个git repo(每个repo都有自己的skaffold配置)。
为了准备集群,当我使用k3d创建集群时,我运行skaffold run -p dev
。
每个skaffold模块都声明了一个这样的配置文件:
profiles:
- name: dev
build:
local:
push: false
useDockerCLI: false
artifacts:
- image: my-org/my-image
docker: {}
sync:
infer:
- '**/*.ts'
字符串
如果我想在一个特定的模块上开发,这个配置文件很有用,但是当我想设置整个集群时,skaffold将构建所有的镜像,而不是从仓库中提取它们。
我想要实现的是当我想在特定模块上运行skaffold dev
时在本地构建,但是当我在skaffold.yaml
入口点上运行skaffold run
时拉取图像。
有可能做到吗?
谢谢
1条答案
按热度按时间0s7z1bwu1#
我想要实现的是当我想在特定模块上运行
skaffold dev
时在本地构建,但是当我在skaffold.yaml
入口点上运行skaffold run
时拉取图像。使用Skaffold profile,就像你在本地开发的问题中所做的那样,是一个好主意,但是你也可以引入一个 * 额外的 * 配置文件,专门用于在运行主
skaffold.yaml
时从存储库中提取图像。你会有:
dev
配置文件,配置为本地开发,允许使用特定设置(如push: false
)进行本地构建。它非常适合处理单个模块。pull-images
配置文件),用于处理从存储库中拉取图像而不是在本地构建图像的特定情况。该配置文件应在每个模块的skaffold.yaml
中定义。主
skaffold.yaml
使用requires
语句来包含所有模块。通过在运行
skaffold run -p pull-images
时指定pull-images
配置文件,它告诉Skaffold为每个模块使用pull-images
配置文件。这导致为整个集群设置拉取映像,而不是构建映像。这将允许您区分两种情况:
skaffold dev
):在处理单个模块时,使用dev
配置文件在本地构建映像。skaffold run
):在设置整个集群时,使用pull-images
配置文件从存储库中提取所有模块的映像。字符串
您的模块Skaffold配置将是:
型
在您的主
skaffold.yaml
中:型
将这些更改应用到示例模块的
skaffold.yaml
:型