You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不用docker-compose通过gitlab-ci构建多个Docker镜像

配置前提

你的GitLab Runner需要启用Docker-in-Docker(DinD)执行模式,如果你使用GitLab自带的容器注册表,无需额外配置密钥,直接使用GitLab内置变量即可完成镜像推送。如果Runner采用shell执行器,只要保证Runner宿主机已安装Docker环境即可,无需配置DinD。

可用的gitlab-ci.yml配置

stages:
  - build

variables:
  # DinD模式必填配置
  DOCKER_HOST: tcp://docker:2376
  DOCKER_TLS_CERTDIR: "/certs"
  # 镜像前缀默认使用GitLab自带容器注册表,可替换为你自己的私有仓库地址
  IMAGE_PREFIX: $CI_REGISTRY_IMAGE

build-vcxagency-base:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -f ./vcxagency-base/vcxagency-base.Dockerfile -t $IMAGE_PREFIX/vcxagency-base:1.15.0 https://github.com/AbsaOSS/vcxagencynode.git#master
    - docker push $IMAGE_PREFIX/vcxagency-base:1.15.0

build-vcxagency-node:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -f ./vcxagency-node/Dockerfile -t $IMAGE_PREFIX/vcxagency-node:0.3.1 https://github.com/AbsaOSS/vcxagencynode.git#master
    - docker push $IMAGE_PREFIX/vcxagency-node:0.3.1

注意事项

  • 你原docker-compose配置中的端口映射、环境变量、服务依赖都是容器运行时参数,镜像构建阶段不需要用到,后续部署到Kubernetes时写到对应Deployment配置中即可
  • 如果只需要构建不需要推送镜像,删除before_script段的登录命令和script段的push命令即可

内容的提问来源于stack exchange,提问作者CurlyError

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:36:00