簡體   English   中英

如何使用multer讀寫docker中的文件

[英]How to write and read file in docker using multer

我正在使用 multer 將上傳文件保存到特定目錄。 我在本地工作得很好,但是當我使用 docker 構建時,multer 沒有將文件寫入我的文件夾。

這是我的多重代碼:

const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, __basedir + "/uploads/")
  },
  filename: (req, file, cb) => {
    cb(null, file.originalname)
  }
})

我決定像這樣使用 docker-compose 中的卷:

volumes:
      - ./uploads:/app/uploads

和錯誤Error: EACCES: permission denied, open '/app/uploads/Funder Statement Test data.xlsx'

這是我的 dockerFile:

FROM node:fermium-alpine

RUN apk add --no-cache \
      chromium \
      nss \
      freetype \
      harfbuzz \
      ca-certificates \
      ttf-freefont \
      nodejs \
      yarn

# Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
    PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

# Puppeteer v10.0.0 works with Chromium 92.
RUN yarn add puppeteer@10.0.0

# Add user so we don't need --no-sandbox.
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser \
    && mkdir -p /home/pptruser/Downloads /app \
    && chown -R pptruser:pptruser /home/pptruser \
    && chown -R pptruser:pptruser /app 

# Run everything after as non-privileged user.
USER pptruser

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3030

CMD ["npm", "start"]


知道如何解決我的錯誤嗎?

運行 Docker 容器的用戶可能沒有寫入映射文件夾./uploads的權限。 確保權限正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM