| 常见方式 | docker:dind 服务 + DOCKER_TLS_CERTDIR |
|---|---|
| 要求 | 通常需要特权 Runner 或相应安全配置 |
| 替代 | rootless 构建、BuildKit、kaniko 等免特权方案 |
| 缓存 | dind 环境不保留本地镜像,用 registry 或缓存加速 |
DinD 模板
DinD 模板
build-image:
image: docker:27
services:
- docker:27-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA"特权构建的隔离边界更弱:只在可信网络与专用 Runner 上启用,并限制可见范围。