Error: EACCES: permission denied, open '/app/next-env.d.ts'

Hello,
The compose file looks like this:

services:
  frontend:
    container_name: frontend
    build:
      context: /home/dev/frontend
      dockerfile: Dockerfile
    environment:
      - NODE_ENV=development
      - REACT_APP_API_URL=/api
      - BUILDKIT_INLINE_CACHE=0
    volumes:
      - /home/dev/frontend:/app
      - /app/node_modules
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 512M

And Dockerfile is:

FROM node:23-alpine

RUN addgroup -g 1001 appgroup && \
    adduser -u 1001 -D -G appgroup appuser

WORKDIR /app
RUN chown appuser:appgroup /app

COPY --chown=appuser:appgroup package.json package-lock.json ./

RUN npm install --legacy-peer-deps

RUN chown -R appuser:appgroup /app/node_modules && \
    chmod -R 775 /app/node_modules

COPY --chown=appuser:appgroup . .

USER appuser

ENV NODE_ENV=development \
    CHOKIDAR_USEPOLLING=true \
    NEXT_TELEMETRY_DISABLED=1

EXPOSE 3000

CMD ["npm", "run", "dev"]

I got:

Attaching to portal-view
portal-view  | 
portal-view  | > vristo-next@0.1.0 dev
portal-view  | > next dev
portal-view  | 
portal-view  |   ▲ Next.js 14.2.24
portal-view  |   - Local:        http://localhost:3000
portal-view  | 
portal-view  |  ✓ Starting...
portal-view  | Error: EACCES: permission denied, open '/app/next-env.d.ts'
portal-view  |     at async open (node:internal/fs/promises:634:25)
portal-view  |     at async Object.writeFile (node:internal/fs/promises:1208:14)
portal-view  |     at async writeAppTypeDeclarations (/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js:59:5)
portal-view  |     at async verifyTypeScriptSetup (/app/node_modules/next/dist/lib/verify-typescript-setup.js:124:9)
portal-view  |     at async verifyTypeScript (/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:112:26)
portal-view  |     at async startWatcher (/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:139:29)
portal-view  |     at async setupDevBundler (/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js:775:20)
portal-view  |     at async Span.traceAsyncFn (/app/node_modules/next/dist/trace/trace.js:154:20)
portal-view  |     at async initialize (/app/node_modules/next/dist/server/lib/router-server.js:80:30)
portal-view  |     at async Server.<anonymous> (/app/node_modules/next/dist/server/lib/start-server.js:249:36) {
portal-view  |   errno: -13,
portal-view  |   code: 'EACCES',
portal-view  |   syscall: 'open',
portal-view  |   path: '/app/next-env.d.ts'
portal-view  | }
portal-view  | 
portal-view exited with code 0

The permissions in the container are as follows:

/app $ ls -la
total 728
drwxr-xr-x   16 node     node          4096 Apr  8 06:27 .
drwxr-xr-x    1 root     root          4096 Apr  8 06:31 ..
-rw-r--r--    1 node     node           206 Apr  5 13:05 .editorconfig
-rw-r--r--    1 node     node            42 Apr  5 13:05 .eslintrc.json
drwxr-xr-x    8 node     node          4096 Apr  5 13:05 .git
-rw-r--r--    1 node     node           385 Apr  5 13:05 .gitignore
drwxr-xr-x    4 node     node          4096 Apr  5 13:05 .idea
-rw-r--r--    1 node     node            69 Apr  5 13:05 .prettierrc
-rw-r--r--    1 node     node          1954 Apr  5 13:05 App.tsx
-rw-r--r--    1 node     node          1046 Apr  8 06:26 Dockerfile
-rw-r--r--    1 node     node          1751 Apr  5 13:05 README.md
drwxr-xr-x    4 node     node          4096 Apr  5 13:05 app
drwxr-xr-x   42 node     node          4096 Apr  5 13:05 components
drwxr-xr-x    5 node     node          4096 Apr  5 13:05 contracts
-rw-r--r--    1 node     node          1174 Apr  5 13:05 docker-compose.yml.bak
drwxr-xr-x    2 node     node          4096 Apr  5 13:05 exceptions
drwxr-xr-x    3 node     node          4096 Apr  5 13:05 forms
drwxr-xr-x    2 node     node          4096 Apr  5 13:05 helpers
drwxr-xr-x   27 node     node          4096 Apr  5 13:05 hooks
-rw-r--r--    1 node     node          1813 Apr  5 13:05 i18n.ts
-rw-r--r--    1 node     node           198 Apr  5 13:05 next.config.js
-rw-r--r--    1 node     node           427 Apr  5 13:05 ni18n.config.ts.js
drwxr-xr-x  492 appuser  appgroup     24576 Apr  8 06:31 node_modules
-rw-r--r--    1 node     node        591580 Apr  5 13:05 package-lock.json
-rw-r--r--    1 node     node          3422 Apr  5 13:05 package.json
-rw-r--r--    1 node     node            95 Apr  5 13:05 postcss.config.js
drwxr-xr-x    5 node     node          4096 Apr  5 13:05 public
drwxr-xr-x   26 node     node          4096 Apr  5 13:05 services
drwxr-xr-x    2 node     node          4096 Apr  5 13:05 store
drwxr-xr-x    2 node     node          4096 Apr  5 13:05 styles
-rw-r--r--    1 node     node          3643 Apr  5 13:05 tailwind.config.js
-rw-r--r--    1 node     node           624 Apr  5 13:05 theme.config.tsx
-rw-r--r--    1 node     node           790 Apr  5 13:05 tsconfig.json

Any idea?

Thank you.