Estoy usando multer para guardar el archivo de carga en un directorio específico. Estoy funcionando perfectamente en local, pero cuando construyo usando la ventana acoplable, el multer no escribe el archivo en mi carpeta.
este es mi código multer:
const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, __basedir + "/uploads/") }, filename: (req, file, cb) => { cb(null, file.originalname) } })y decidí usar volúmenes en docker-compose así:
volumes: - ./uploads:/app/uploads y error Error: EACCES: permission denied, open '/app/uploads/Funder Statement Test data.xlsx'
este es mi 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"]¿Alguna idea de cómo solucionar mi error?
Es probable que el usuario bajo el cual se ejecuta el contenedor Docker no tenga permiso para escribir en la carpeta asignada ./uploads . Asegúrese de que los permisos sean correctos.