неверный формат ссылки при создании образа Docker - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующие строки в Dockerfile:

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

где SOMEARGUMENT может быть "some / repository: 1.1.1" или "some / repository: 2.2.2"

Но при попытке собрать я всегда получаю ошибку:

invalid reference format: repository name must be lowercase

Таким образом, очевидно, что аргумент, переданный при построении изображения (то есть SOMEARGUMENT), не разрешается.

Можно ли сделать что-то подобное в Dockerfile?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Расширение на 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 .
0 голосов
/ 08 ноября 2018

Поскольку вы всегда основываетесь на одном и том же репо, делать это чище.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...