我有如下这样的vue dockerfile最佳实践:
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
我想知道第一个COPY ./和第二个COPY之类的目标有什么不同。 ?
答案 0 :(得分:3)
如果有多个源,则必须使用./
格式,该格式明确指定目标是一个文件夹,所有源均复制到该文件夹中。因此,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