这是我的文件结构简化
app-folder
-> dist
-> server.js
-> src
-> server.ts
-> key.pem
-> cert.pem
这是 server.ts 文件读取证书文件的简化内容
import fs from 'fs';
const options = {
key: fs.readFileSync('../key.pem'),
cert: fs.readFileSync('../cert.pem')
};
这是我得到的错误
server | internal/fs/utils.js:307
server | throw err;
server | ^
server |
server | Error: ENOENT: no such file or directory, open '../key.pem'
server | at Object.openSync (fs.js:476:3)
server | at Object.readFileSync (fs.js:377:35)
server | at Object.<anonymous> (/usr/src/app/dist/server.js:18:23)
server | at Module._compile (internal/modules/cjs/loader.js:1063:30)
server | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
server | at Module.load (internal/modules/cjs/loader.js:928:32)
server | at Function.Module._load (internal/modules/cjs/loader.js:769:14)
server | at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
server | at internal/main/run_main_module.js:17:47 {
server | errno: -2,
server | syscall: 'open',
server | code: 'ENOENT',
server | path: '../key.pem'
server | }
server exited with code 1
我按照本教程创建了密钥和证书
Hoangdv 指出我使用 docker 这是正确的,这是我的 Dockerfile:
FROM node:14
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN npm install -g nodemon
# Install dependencies
COPY package.json .
RUN npm install
# Bundle app source
COPY . .
RUN npx tsc
EXPOSE 8080
不COPY . .复制证书吗?