Чем отличается. и ./ в RUN - PullRequest
       2

Чем отличается. и ./ в RUN

0 голосов
/ 01 апреля 2019

У меня есть лучшая практика использования vue dockerfile:

FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

Интересно, чем отличается цель, например, первая КОПИЯ ./ и вторая КОПИЯ.?

1 Ответ

3 голосов
/ 01 апреля 2019

Если у вас несколько источников, вы обязаны использовать форму ./, в которой явно указывается, что целью является папка, в которую копируются все источники. Таким образом, COPY a b ./ сделает ./a и ./b внутри контейнера.

Если у вас один источник, например COPY . ., эта команда объединяет содержимое папки источника в папку назначения или заменяет файл (если источником является файл).

Лучше всего показано на примере. Допустим, у вас есть:

a/
  a.txt
b/
  b.txt
Dockerfile
hello.txt

Dockerfile

COPY hello.txt ./hello1    # will create/replace ./hello1 FILE in container
COPY hello.txt ./hello2/  # will create ./hello2/hello.txt 
COPY a .     # now you have ./a.txt in container
COPY b .     # now you have ./a.txt and ./b.txt in container   

Наконец вы получите в контейнере:

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