我有一個問題想生成dockerfile爲我的應用程序的NodeJS:Dockerfile RUN不會在容器上下文中運行
我dockerfile:
FROM node
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 3000
CMD ["node", "/app/index.js"]
的的NodeJS(NPM作爲的一部分安裝)需要grpc。當我嘗試運行我的應用程序,我得到了以下錯誤消息:
找不到模塊「/app/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64/grpc_node.node」
當我瀏覽app/node_modules/grpc/src/node/extension_binary/
文件夾時,node-v48-win32-x64
是其中的唯一文件夾。我的猜測是當npm install
運行時,它使用上下文我的主機,它檢測到Windows/x64並下載了該二進制文件。我想避免在運行時運行npm install
。我該如何解決?
我的package.json:
{
"name": "microservice-test",
"version": "1.0.0",
"description": "A test microservice.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "FrankerZ",
"license": "ISC",
"devDependencies": {
"grpcc": "0.0.8",
"gulp-livereload": "^3.8.1"
},
"dependencies": {
"async": "^2.5.0",
"grpc": "^1.6.0",
"gulp": "^3.9.1",
"gulp-run": "^1.7.1",
"gulp-util": "^3.0.8",
"protoc-plugin": "0.0.6"
}
}
你可以將你的package.json添加到問題中嗎? –
@TarunLalwani附加 – FrankerZ
我將與本指南中的dockerfile一起使用https://nodejs.org/en/docs/guides/nodejs-docker-webapp/ 它可能會將您已安裝的node_modules複製到系統相關的節點上,而不會更新到碼頭工人。 – Kieper