Node.js Docker build(Windows)在运行后挂起';npm安装';
正如标题所述,我正在尝试使用“NPM安装”构建Dockerfile,如下所示:Node.js Docker build(Windows)在运行后挂起';npm安装';,node.js,docker,npm,dockerfile,docker-for-windows,Node.js,Docker,Npm,Dockerfile,Docker For Windows,正如标题所述,我正在尝试使用“NPM安装”构建Dockerfile,如下所示: FROM mcr.microsoft.com/windows/nanoserver:1809 AS build-nodejs WORKDIR /app COPY . . ARG NODE_VERSION=12.10.0 RUN echo "Downloading NodeJS version %NODE_VERSION% ..." && \ curl "https://nodejs.org
FROM mcr.microsoft.com/windows/nanoserver:1809 AS build-nodejs
WORKDIR /app
COPY . .
ARG NODE_VERSION=12.10.0
RUN echo "Downloading NodeJS version %NODE_VERSION% ..." && \
curl "https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-win-x64.zip" --output nodejs.zip && \
echo "Expanding NodeJS ..." && \
tar -xvf nodejs.zip -C "C:\\"
RUN SET "PATH=%PATH%C:\node-v%NODE_VERSION%-win-x64" && \
SET NODE_OPTIONS="--max_old_space_size=4096" && \
SET CI=true && \
ECHO "npm install ..." && \
npm install
.
.
.
移动到以下“开始”步骤需要15分钟强>
FROM mcr.microsoft.com/dotnet/core/sdk:3.0.100 AS build-netcore
WORKDIR /app
.
.
.
RUN命令和FROM步骤之间会发生什么情况?为什么要花15分钟才能转到起始步骤? 我怀疑映像中的节点_模块创建是原因,可能是它被传递到了FROM部分somewhy。
当然,我可能错了,我希望听到更多的意见 只有两次机会。FROM将下载图像,但仅在同一个框中首次下载。
你的副本。如果您的内容非常丰富,则需要时间 因此,在我添加以下内容之后:
RUN del /S /Q node_modules
在“npm安装”之后,
在跑步和起步之间跳跃只需3分钟,而不像以前那样需要15分钟。正如我所怀疑的,在运行层中创建的“node_modules”目录延迟了层之间的转换。
我只是不明白层与层之间传递信息的过程,如果有人能告诉我这将非常有帮助。看看你在副本中做了什么。我复制我需要的所有源文件,我使用.dockerginore作为节点_模块等。因此,请尝试对其进行注释,以查看是否执行得更快。在某些情况下,最好添加一个.dockerginore文件以排除节点_模块