건물을 만들 때 Docker 컨테이너에 파일을 패키지하는 방법에 대한 대부분의 문제를 해결하려고합니다. NodeJS 앱.Docker가있는 NodeJS : ENOENT : 해당 파일이나 디렉토리가 없습니다. '/app/folder/example.key'를 엽니 다.
고정 표시기 파일 내용은 다음과 같습니다 : 나는 다음과 같은 디렉토리 구조를 가지고 NodeJS 프로젝트가
key: fs.readFileSync(path.join(__dirname, './../ssl/example.key'))
다음
index.ts
파일에서
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", "."]
나는 라인을 가지고
위의 행을 변경하려고 시도했습니다.
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
나는이 방식 때문에 응용 프로그램입니다 가정 :
key: fs.readFileSync(path.join(__dirname, 'ssl/example.key'))
이 줄은 다음과 같은 오류가 발생합니다 : 나는 또한 src 폴더 내부의 SSL 디렉토리를 이동하고 성공하지 여전히 아래의 라인을 사용하여 시도 디렉토리는 도커 컨테이너에 넣을 때 패키지됩니다. 도커 컨테이너가 없으면 정상적으로 작동합니다. 누구든지 도와 줄 수 있습니까? 감사.