无法在Docker中安装NPM



我有一个本地构建的项目,我尝试创建一个Docker映像。在我的项目中,我安装了NPM包,我的包文件位于: src Core.Blazor package.json

但是,当我尝试构建我的Docker映像时,它失败了,出现以下错误:

npm ERR! code ENOLOCAL
npm ERR! Could not install "src/Core.Blazor/package.json" as it is not a directory and is not a file with a name ending in .tgz, .tar.gz or .tar

我也加入Dockerfile:

### >>> GLOBALS
ARG ENVIRONMENT="Production"
ARG PROJECT="PyProd.IdentityServer.Host"
### <<<
# debian buster - AMD64
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
### >>> IMPORTS
ARG ENVIRONMENT
ARG PROJECT
### <<<
ARG NUGET_CACHE=https://api.nuget.org/v3/index.json
ARG NUGET_FEED=https://api.nuget.org/v3/index.json
# Copy sources
COPY src/ /app/src
ADD common.props /app
WORKDIR /app
# Installs NodeJS to build typescripts
RUN apt-get update
RUN apt-get install curl
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs
RUN npm install /app/src/Core.Blazor/package.json

在尝试用以下方法修复后,我也得到了一个错误:

RUN npm install /app/src/SmartPixel.Core.Blazor/

下面是我得到的错误:

> aspnet-parcel-exp@0.1.0 build /app/src/SmartPixel.Core.Blazor
> parcel build wwwroot/assets/blazorcore.js --out-dir wwwroot/dist/

sh: 1: parcel: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! aspnet-parcel-exp@0.1.0 build: `parcel build wwwroot/assets/blazorcore.js --out-dir wwwroot/dist/`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the aspnet-parcel-exp@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

我也加入了包。json文件:

{
"name": "aspnet-parcel-exp",
"private": true,
"version": "0.1.0",
"devDependencies": {
"parcel": "1.12.3"
},
"includePaths": [
"./wwwroot/assets/js",
"./wwwroot/assets/css"
],
"scripts": {
"build": "parcel build wwwroot/assets/blazorcore.js --out-dir wwwroot/dist/",
"watch": "parcel watch wwwroot/assets/blazorcore.js --out-dir wwwroot/dist/"
}
}

我不知道NodeJS,但正如你的错误所说:

npm犯错!无法安装"src/Core.Blazor/package.json;作为,它不是目录不是以。tgz、。tar.gz或。tar结尾的文件。

我认为你应该把你的Dockerfile改成这样:

RUN npm install /app/src/Core.Blazor/

或者

RUN npm install /app/src/Core.Blazor

因为第二个没有斜杠。

最新更新