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 镜像发布到注册表的过程。

首先,在您的 Stackhero 仪表板中启用 "Docker in Docker" (DinD) 支持。

警告 启用 DinD 支持存在安全风险,特别是如果您希望隔离用户并防止他们访问彼此的项目。

接下来,更新您的 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 官方文档