Starting with docker compose up I'm facing an error below:
frontend | ready - started server on 0.0.0.0:3000, url: http://localhost:3000
frontend | info - Loaded env from /app/.env.local
frontend | [Error: EACCES: permission denied, open '/app/.next/package.json'] {
frontend | errno: -13,
frontend | code: 'EACCES',
frontend | syscall: 'open',
frontend | path: '/app/.next/package.json'
frontend | }
frontend exited with code 1
Can't find any solution to this. I see this error even with 777 permissions for this file.
Dockerfile.dev
ARG BASE=node:16.17.1
# install deps
FROM ${BASE} AS project_name_frontend_dev
USER root
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY --chown=node:node . .
EXPOSE 3000
# for dev purpose
CMD ["npm", "run", "dev"]
I've tried to modify file/folder permissions, rebuild container and modify USER & COPY data in Dockerfile.dev.
EDIT:
docker-compose.yml
services:
front:
container_name: frontend
build:
context: .
dockerfile: Dockerfile.prod
args:
ARG_NEXT_PUBLIC_FRONT_HOST: ${NEXT_PUBLIC_FRONT_HOST}
ARG_NEXT_PUBLIC_API_HOST: ${NEXT_PUBLIC_API_HOST}
ARG_NEXT_PUBLIC_FRONT_BASE: ${NEXT_PUBLIC_FRONT_BASE}
ARG_NEXT_PUBLIC_API_BASE: ${NEXT_PUBLIC_API_BASE}
ARG_NEXT_PUBLIC_MEDIA_PATH: ${NEXT_PUBLIC_MEDIA_PATH}
ARG_NEXT_PUBLIC_IMAGES_DOMAIN: ${NEXT_PUBLIC_IMAGES_DOMAIN}
ARG_NEXT_PUBLIC_GOOGLE_MAPS_KEY: ${NEXT_PUBLIC_GOOGLE_MAPS_KEY}
ARG_NEXT_PUBLIC_GOOGLE_CLIENT_ID: ${NEXT_PUBLIC_GOOGLE_CLIENT_ID}
ARG_NEXT_PUBLIC_FB_APP_ID: ${NEXT_PUBLIC_FB_APP_ID}
ARG_NEXT_PUBLIC_CHAT_HOST: ${ARG_NEXT_PUBLIC_CHAT_HOST}
ARG_NEXT_PUBLIC_CHAT_BASE: ${ARG_NEXT_PUBLIC_CHAT_BASE}
networks:
- project_net_name
extra_hosts:
- "api.project_name.local:ip-address"
networks:
project_net_name:
external: true
docker-compose.override.yml
services:
front:
container_name: frontend
build:
context: .
dockerfile: Dockerfile.dev
target: project_name_frontend_dev
networks:
- project_net_name
extra_hosts:
- "api.project_name.local:ip-address"
environment:
NODE_TLS_REJECT_UNAUTHORIZED: 0
volumes:
- .:/app
- /app/node_modules
- /app/.next