Node.js docker -составить: Ошибка: EPERM: операция не разрешена, scandir '/ app' - PullRequest
0 голосов
/ 10 апреля 2020

Я получаю эту ошибку при запуске контейнера docker. Когда я запускаю приложение с моего компьютера, все работает нормально, но в Docker нет.

Dockerfile

FROM node:13.12.0-alpine

# add bash
RUN apk update
RUN apk upgrade
RUN apk add bash

WORKDIR /app
COPY . /app
RUN npm cache verify
RUN npm install node-pre-gyp -g
RUN npm install
COPY ./.docker/wait-for-it.sh /usr/local
RUN chmod +x /usr/local/wait-for-it.sh

EXPOSE 3000

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

docker-compose.yml

version: "3.7"

services:
  app:
    build:
      context: .
      dockerfile: ./.docker/node/Dockerfile
    volumes:
      - .:/app
      - /app/node_modules
    command: /usr/local/wait-for-it.sh 127.0.0.1:27017 -- npm run dev
    env_file:
      - ./src/.env
    ports:
      - 3000:3000
    depends_on:
      - mongo

  mongo:
    image: mongo:latest
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    ports:
      - 27017:27017
    volumes:
      - ./data:/data/db

Журналы ошибок

timeout: unrecognized option: t

BusyBox v1.31.1 () multi-call binary.


Usage: timeout [-s SIG] SECS PROG ARGS

Runs PROG. Sends SIG to it if it is not gone in SECS seconds.

Default SIG: TERM.

wait-for-it.sh: timeout occurred after waiting 15 seconds for 127.0.0.1:27017

yarn run v1.22.4

Error: EPERM: operation not permitted, open '/app/package.json'

at Object.openSync (fs.js:462:3)

at Object.readFileSync (fs.js:364:35)

at onUnexpectedError (/opt/yarn-v1.22.4/lib/cli.js:92553:106)

at /opt/yarn-v1.22.4/lib/cli.js:92672:9

Может кто-нибудь помочь, пожалуйста?

ОБНОВЛЕНИЕ:

Хорошо, после всего дня я обнаружил, что это проблема Ма c Каталина. -> найдено здесь Вы должны дать разрешения на Docker

...