如何在Kaniko中为多阶段Dockerfile指定构建目标?
在Kaniko中指定多阶段Dockerfile的构建目标
没问题!Kaniko完全支持针对多阶段Dockerfile指定特定构建目标,用法和你熟悉的Docker CLI --target 参数几乎一致,只需要通过Kaniko的命令行参数传递就行。
核心用法(Kaniko Executor)
如果你用的是最常用的Kaniko Executor镜像,直接在运行命令时添加 --target <你的阶段名称> 参数即可:
docker run --rm -v $(pwd):/workspace gcr.io/kaniko-project/executor:latest \ --dockerfile=/workspace/Dockerfile \ --context=/workspace \ --target=builder \ --no-push
这里的builder对应你Dockerfile里定义的阶段名(比如FROM golang:1.20 AS builder里的builder),Kaniko会只构建到这个阶段为止,不会执行后续的阶段步骤。
CI/CD环境中的用法
不管是在GitLab CI、GitHub Actions还是其他CI平台,用法都是类似的——只要在Kaniko的执行配置里加入--target参数就行。比如GitHub Actions里的配置示例:
- name: Build specific stage with Kaniko uses: kaniko-project/executor@v1.9.0 with: dockerfile: ./Dockerfile context: . target: builder push: false
小提示
要注意指定的阶段名称必须和Dockerfile里AS关键字后的名称完全匹配,Kaniko对这个名称是大小写敏感的哦。
内容的提问来源于stack exchange,提问作者Timur
相关产品推荐
相关产品推荐

