grafana/shipwrightShipwright 构建镜像是一个专为容器镜像构建设计的工具镜像,旨在简化和标准化容器化应用的构建流程。它支持多种构建策略,允许开发者根据项目需求选择最适合的构建方式,并与 Kubernetes 生态系统深度集成,提供自动化、可扩展的镜像构建解决方案。
kubectl 命令行工具(与集群版本匹配)通过 BuildStrategy 自定义资源定义构建策略,以下是常用策略示例:
yamlapiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: dockerfile-strategy namespace: default spec: buildSteps: - name: build-image image: docker:20.10 command: ["docker", "build", "-f", "$(DOCKERFILE)", "-t", "$(OUTPUT_IMAGE)", "$(CONTEXT)"] volumeMounts: - name: docker-socket mountPath: /var/run/docker.sock volumes: - name: docker-socket hostPath: path: /var/run/docker.sock type: Socket parameters: - name: DOCKERFILE default: ./Dockerfile - name: CONTEXT default: .
yamlapiVersion: shipwright.io/v1beta1 kind: BuildStrategy metadata: name: buildpacks-strategy namespace: default spec: buildSteps: - name: buildpacks-build image: paketobuildpacks/builder:base command: ["pack", "build", "$(OUTPUT_IMAGE)", "--builder", "paketobuildpacks/builder:base"]
通过 Build 资源定义具体构建任务,关联源代码和输出镜像:
yamlapiVersion: shipwright.io/v1beta1 kind: Build metadata: name: example-app-build namespace: default spec: source: type: Git git: url: [***] # 源代码仓库地址 revision: main # 分支或提交哈希 strategy: name: dockerfile-strategy # 关联上述定义的构建策略 kind: BuildStrategy output: image: registry.example.com/example-app:v1.0.0 # 输出镜像地址 credentials: name: registry-creds # 镜像仓库认证密钥(需提前创建 Secret) parameters: - name: DOCKERFILE value: ./deploy/Dockerfile # 自定义 Dockerfile 路径(覆盖策略默认值)
通过 BuildRun 资源触发构建流程:
yamlapiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: name: example-app-buildrun namespace: default spec: build: name: example-app-build # 关联上述定义的 Build 资源
应用配置并触发构建:
bash# 创建构建策略 kubectl apply -f dockerfile-strategy.yaml # 创建构建任务 kubectl apply -f example-app-build.yaml # 触发构建 kubectl apply -f example-app-buildrun.yaml
bash# 查看构建任务状态 kubectl get buildrun example-app-buildrun -o wide # 查看构建日志 kubectl logs -l shipwright.io/buildrun=example-app-buildrun -c step-build-image
| 参数名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
OUTPUT_IMAGE | 输出镜像地址(含标签) | - | registry.example.com/app:v1.0 |
SOURCE_URL | 源代码仓库 URL | - | [***] |
SOURCE_REVISION | 源代码分支/提交哈希 | main | v1.0.0 或 a1b2c3d4e5f6 |
不同策略支持自定义参数,可在 Build 资源的 parameters 字段中覆盖默认值,例如:
DOCKERFILE(文件路径)、CONTEXT(构建上下文路径)BUILDER_IMAGE(构建器镜像)、ENV_VARS(环境变量)Secret,并在 Build 资源中通过 output.credentials 关联。PersistentVolume 存储缓存数据)以提升性能。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务