dockerfile - 将环境变量从 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
有人可以帮我指出我哪里出错了吗?谢谢
解决方案
考虑定义全局 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
推荐阅读
- windows - 使用 Windows CNG API 在 OpenSSL 1.1.0e 中实现自定义 ECDH
- c# - WPF。这是否可以在某些上下文上方显示 Dock 窗口(不包括使用自动隐藏状态)?
- javascript - HTML Textarea 默认文本?(如布局)
- javascript - 使用 for 循环 html javascript 为动态数据创建动态表
- sql - 如何将数据插入 SQL 表并默认其余部分
- angular - GoJS + Angular 链接在初始加载时不会避免节点
- javascript - 如果子元素和父元素具有相同的类,则不显示
- algorithm - 用图论找到套利
- css - 上标在 HTML 编码的电子邮件中弄乱了行高。无法弄清楚如何应用内联 CSS 来解决。有小费吗?里面的代码示例
- javascript - 如何获取文本区域内选定文本的屏幕坐标