We have been using docker-compose for 1 year and we had no problems. in the past week we each started getting a weird error related to permissions
at internal/main/run_main_module.js:17:47 : Error: EPERM: operation not permitted, open <PATH TO FILE>
only happens when I switch branches
version: "2.4" # template: x-base: &base-service-template env_file: - ./.env working_dir: /app/ volumes: - ./src:/app/src:cached services: service1: image: service1 <<: *base-service-template service2: image: service2 <<: *base-service-template
we are all working on OSX. we tried giving docker permissions over the filesystem and it still didn’t work.
BUT there is something that works. restarting the daemon. but i don’t want to restart the daemon each time I switch branches
the docker file base of each service looks like this
FROM node:12-alpine as builder ENV TZ=Europe/London RUN npm i [email protected] -g RUN mkdir /app && chown node:node /app WORKDIR /app RUN apk add --no-cache python3 make g++ tini && apk add --update tzdata USER node COPY package*.json ./ RUN npm install --no-optional && npm cache clean --force ENV PATH /app/node_modules/.bin:$PATH COPY . . FROM builder as dev USER node CMD ["nodemon", "src/services/service/service.js"] FROM builder as prod USER node ENTRYPOINT ["/sbin/tini", "--"] CMD ["node", "src/services/service/service.js"]
I run on the dev layer so that we can leverage the nodemon code reload.
docker version: Docker version 19.03.13, build 4484c46d9d
docker-compose version: docker-compose version 1.27.4, build 40524192
Source: Docker Questions