NodeJS与Docker:ENOENT:没有这样的文件或目录,打开“/app/folder/example.key”

我主要试图了解如何解决/了解如何在构buildNodeJS应用程序时将文件打包到Docker容器中。 我有一个NodeJS项目,具有以下目录结构:

在这里输入图像说明

docker文件内容如下:

FROM node:8.7-alpine as build RUN npm install --global typescript webpack ENV NODE_ENV=development NODE_PATH=/app WORKDIR /app COPY package.json . RUN npm install COPY . . RUN tsc -p . RUN webpack FROM node:8.7-alpine ENV NODE_ENV=production NODE_PATH=/app RUN apk add --no-cache \ udev \ ttf-freefont \ chromium \ fontconfig pango-dev libxcursor libxdamage cups-libs dbus-libs libxrandr gconf-dev libxscrnsaver libc6-compat WORKDIR /app COPY package.json . RUN npm install COPY --from=build /app/build . CMD ["node", "."] 

index.ts文件中我有一行:

 key: fs.readFileSync(path.join(__dirname, './../ssl/example.key')) 

我试着改变上面的路线

 key: fs.readFileSync(path.join(__dirname, '../ssl/example.key')) 

但没有工作。 我也尝试移动src文件夹内的ssl目录,并使用下面的行仍然没有成功:

 key: fs.readFileSync(path.join(__dirname, 'ssl/example.key')) 

此行导致以下错误:

 Error: ENOENT: no such file or directory, open '/app/ssl/example.key' at Object.fs.openSync (fs.js:653:18) at Object.fs.readFileSync (fs.js:554:33) at Object.<anonymous> (/app/index.js:15:13) at Module._compile (module.js:624:30) at Object.Module._extensions..js (module.js:635:10) at Module.load (module.js:545:32) at tryModuleLoad (module.js:508:12) at Function.Module._load (module.js:500:3) at Function.Module.runMain (module.js:665:10) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3 

我想这是因为将应用程序目录放在泊坞窗容器中的方式。 没有docker容器它工作正常。 谁能帮忙? 谢谢。