构建Docker映像时参考格式无效

时间:2018-11-08 13:00:21

标签: docker dockerfile

我在Dockerfile中有以下几行:

ARG SOMEARGUMENT
COPY --from=$SOMEARGUMENT /some/path/goes/here

其中SOMEARGUMENT可以是“一些/存储库:1.1.1”或“一些/存储库:2.2.2”

但是在尝试构建时,总是会出现错误:

invalid reference format: repository name must be lowercase

很明显,构建图像时传递的参数(即SOMEARGUMENT)没有得到解决。

是否真的可以在Dockerfile中执行类似的操作?

谢谢。

2 个答案:

答案 0 :(得分:1)

由于您始终基于相同的存储库,因此这样做更干净。

ARG VERSION
FROM some/repository:${VERSION} as builder
RUN mkdir test
FROM scratch
COPY --from=builder /test /

来源:

https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact

答案 1 :(得分:1)

扩大Siyu答案。

可能的解决方法如下:

Dockerfile:

ARG SOMEARGUMENT
ARG SOMEVERSION=latest

FROM ${SOMEARGUMENT}:${SOMEVERSION} as thebase
RUN echo "This is a test" > /test.txt


FROM alpine:latest
COPY --from=thebase /test.txt /success.txt

CMD cat /success.txt

构建命令:

docker build --build-arg SOMEARGUMENT=alpine --tag test .