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.