Копировать файлы из базового изображения в текущее изображение здания - PullRequest
0 голосов
/ 14 октября 2019

Попытка создать образ докера (X), используя другой пользовательский образ (Y), созданный мной. Здесь я пытаюсь скопировать папку из базового образа Y в X, как показано ниже.

FROM some-image as base

COPY --from=base /root/.m2 /root

RUN mkdir -p /build

Но это ошибка сгенерирования invalid from flag value base: pull access denied for base, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Как я могу добиться этого?

1 Ответ

2 голосов
/ 14 октября 2019

Вы не копируете с какого-то базового изображения, но пытаетесь копировать на том же изображении.

Вам нужно иметь второй этап, чтобы использовать КОПИРОВАТЬ - из которого вы не можете указать -с того же уровня, который вы в настоящее время меняете.

docker-cli-Issues / 1559

Вот самый простой пример,

  • скомпилируйте программу c в базовом образе
  • скопируйте скомпилированную программу из базового образа
  • , в результате ваше конечное изображение будет небольшим 5MB .
FROM alpine as build-env
RUN apk add --no-cache build-base
WORKDIR /app
COPY . .
# Compile the binaries
RUN gcc -o hello helloworld.c
FROM alpine
COPY --from=build-env /app/hello /app/hello
WORKDIR /app
CMD ["/app/hello"] 

hello.c

# include <stdio.h>
  int main(){
   printf("Hello World!");
   return 0;
}
...