作者:mobiledu2502884243 | 来源:互联网 | 2023-01-09 09:21
1> Matt..:
将COPY . .
整个项目以递归方式复制到用于构建的容器中。
将前两个COPY
命令与分隔开,dotnet
restore
然后将其COPY
与分隔开的原因dotnet build
是为了加快构建速度的Docker缓存技巧。这样可以完成,因此不需要在每次更改代码时都安装项目依赖项。
Docker映像是分层构建的。Docker将构成每个新层的内容和说明与以前的版本进行比较。如果它们与现有层的SHA256校验和匹配,则可以跳过该层的构建步骤。
代码比依赖项变化得多,并且依赖项现在通常是从一个缓慢的(ish)网络中获取的。如果在依赖项完成后,则不会破坏所有其他更改的缓存依赖项层。
相当于Node.js package.json
的应用执行内容之前的操作:
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY . /app/
CMD ["node", "app/index.js"]