首页 > 解决方案 > 将环境变量从 GitLab CI/CD 作业传递给 docker 失败

问题描述

我在将 GitLab ci 文件中定义的变量传递到我的 docker 文件时遇到问题 我的 GitLab CI 文件如下所示

variables:
  IMAGE             : "openjdk"
  IMAGE_TAG         : "11-slim"

docker-image:
  extends: .build
  variables:
    DOCKER_IMAGE_VERSION  : ${JDK_IMAGE}:${JDK_IMAGE_TAG}

我的 Docker 文件看起来有点像这样:

# --- STAGE 1 ----------------------------------------------------------------
# Getting ARGS for build
ARG DOCKER_IMAGE_VERSION

# Start with a base image containing Java runtime
FROM ${DOCKER_IMAGE_VERSION} as build

现在,当管道启动 docker 构建时,我收到以下错误:

Step 1/7 : ARG DOCKER_IMAGE_VERSION
Step 2/7 : FROM ${DOCKER_IMAGE_VERSION} as build
base name (${DOCKER_IMAGE_VERSION}) should not be blank

有人可以帮我指出我哪里出错了吗?谢谢

标签: dockerfilegitlab-ci

解决方案


考虑定义全局 ARG 并在构建时覆盖它。例子

ARG sample_TAG=test ARG sample_TAG WORKDIR /opt/sample-test RUN echo "image tag is ${sample_TAG}" FROM $sample_TAG VOLUME /opt RUN mkdir /opt/sample-test


推荐阅读