我有一个基于Windows 10,我想与柯南使用Dockerfile。 我的问题是,我不能让泊坞窗,扩大我在文件的头部定义的ARG。 在此示例:
ARG conan_repository=https://feeds.genetec.com/artifactory/api/conan/conan
ARG conan_remote=genetec
FROM mcr.microsoft.com/windows:1903
RUN conan remote add ${conan_remote ${conan_repository}
要么
RUN conan remote add $conan_remote $conan_repository
最终总是为
C:\>conan remote list
conan-center: https://conan.bintray.com [Verify SSL: True]
$conan_remote: $conan_repository [Verify SSL: True]
远程手动后,我连接到图像添加柯南效果很好。
我不能看到找到关于这个的文档什么?
移动ARG
线后FROM
线。
在Dockerfile参考,请参阅了解如何ARG和FROM互动 。 尤其是:
一个ARG
宣布前的FROM
是一个构建阶段之外,因此它不能在任何指令后使用FROM
。
您可以使用ARG
来控制你从开始将图像(如采摘基本图像的特定标记),在这种情况下ARG
必须是第一位的。 否则,你需要把ARG
后FROM
,如果同样的ARG
是在多级Dockerfile的多个部分使用,你需要重复它的每一个阶段。
如果您想使用全局的args值作为默认,那么你应该申报他们在每个阶段是没有价值的,因此会选择从全局的args的值,如果重写它将使用覆盖值,如果没有,那么它会使用默认值。
让我们看看这个演示Dockerfile
ARG version_default=v1
FROM alpine:latest as base1
ARG version_default
ENV version=$version_default
RUN echo ${version} # value v1 with default value as environment variable.
RUN echo ${version_default}# value v1 as args
为了让您的Dockerfile工作,你需要类似的东西
ARG conan_repository=https://feeds.genetec.com/artifactory/api/conan/conan
ARG conan_remote=genetec
FROM mcr.microsoft.com/windows:1903
ARG conan_repository
ARG conan_remote
ENV conan_remote=$conan_remote
ENV ARG conan_repository=$ARG conan_repository
RUN conan remote add ${conan_remote ${conan_repository}
记住参数数量只适用于建造时间,其中ENV可在容器的运行时间。
或者用多段,你可以尝试从基本影像延伸。
所以,我得到了我的答案从泊坞窗论坛:泊坞窗可用于Windows值作为变量,这样才能访问值,我需要使用Windows变量。