docker - 带有变量的 dockerfile 复制
问题描述
是否可以使用变量作为 from 标志的参数从 dockerfile 中的另一个图像复制?
我要实现的是以下
ARG MY_VERSION
COPY --from=my-image:$MY_VERSION /src /dst
但我总是得到
从标志值 my-image 无效:$MY_VERSION:无效的参考格式
解决方案
你可以做你想做的事,但你需要有一个 FROM 语句来标识你想要复制的图像。像这样的东西
ARG MY_VERSION
FROM my-image:$MY_VERSION as source
FROM scratch as final
COPY --from=source /src /dst
替换scratch
为您要用于新图像的基本图像。
这是一个例子来证明它是有效的。Dockerfile:
ARG MY_VERSION
FROM ubuntu:$MY_VERSION as source
FROM alpine:latest
COPY --from=source /etc/os-release /
构建并运行
docker build --build-arg MY_VERSION=20.04 -t test .
docker run --rm test cat /os-release
输出显示
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
...
这表明它已将文件从 Ubuntu 20.04 映像复制到 Alpine 映像。
推荐阅读
- c# - 在 .net 核心 Web API 中自动添加策略属性
- azure - 在 Azure Bot Analytics 刀片中,如何获取特定用户 ID 的数据?
- apache-spark - java.lang.UnsupportedOperationException:写入时火花出错
- node.js - 将图像上传到 S3 以获取更大的文件
- matlab - Matlab 中出现错误:未定义的函数或变量“removeStopWords”
- linux - 如何使进程中的一个或多个线程停止消耗 CPU 资源?
- apache-kafka - Zookeeper 没有运行
- swift - 使用 textFieldShouldReturn 方法将焦点移动到下一个 textField 它在 Apple TV App 中不起作用
- javascript - 防止页面 URL 传递到 GTM
- c# - 导入 .FBX 文件