GitLab: 如何在 GitLab CI 中构建 Docker 镜像
本文档属于CI/CD指南的一部分。您可以在此处查看完整指南:如何使用 GitLab CI/CD。
👋 欢迎来到 Stackhero 文档!
Stackhero 提供了一种即用型的 GitLab 云 解决方案,具有众多优势,包括:
- 无限用户、存储库、传输和 CI/CD 处理时间。
- 只需点击即可轻松完成 更新。
- 使用 HTTPS 保护的 可定制域名(例如,https://git.your-company.com)。
- 由 私有和专用 VM 提供支持的最佳 性能 和强大的 安全性。
- 在 🇪🇺 欧洲 和 🇺🇸 美国 可用。
节省时间 和 简化生活:只需 5 分钟 即可试用 Stackhero 的 GitLab 云托管 解决方案!
如果您的项目仓库包含 Dockerfile 文件,您可以自动化构建、运行以及在需要时将 Docker 镜像发布到注册表的过程。
步骤 1:启用 Docker in Docker (DinD) 支持
首先,在您的 Stackhero 仪表板中启用 "Docker in Docker" (DinD) 支持。

警告 启用 DinD 支持存在安全风险,特别是如果您希望隔离用户并防止他们访问彼此的项目。
步骤 2:配置 GitLab CI 管道
接下来,更新您的 gitlab-ci.yml 文件,以包含使用 DinD 构建 Dockerfile 的管道配置。以下是一个示例配置:
image: docker:20.10.21
variables:
DOCKER_TLS_CERTDIR: "/certs"
services:
- docker:20.10.21-dind
before_script:
- docker info
build:
stage: build
script:
# 将 "my-docker-image" 替换为您所需的镜像名称:
- docker build -t my-docker-image .
# 可选地,测试 Docker 镜像:
# - docker run my-docker-image /script/to/run/tests
有关使用 GitLab CI 构建 Docker 镜像的更多指导,请参阅 GitLab 官方文档。