Eit*_*ank 5 node.js docker docker-compose devops
我们已经使用 docker-compose 一年了,没有遇到任何问题。在过去的一周里,我们每个人都开始遇到与权限相关的奇怪错误
at internal/main/run_main_module.js:17:47 : Error: EPERM: operation not permitted, open <PATH TO FILE>
仅当我切换分支时才会发生
组成结构:
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
Run Code Online (Sandbox Code Playgroud)
我们都在 OSX 上工作。我们尝试授予 docker 对文件系统的权限,但仍然不起作用。
但有一些东西是有效的。重新启动守护进程。但我不想每次切换分支时都重新启动守护进程
附加信息:
每个服务的 docker 文件库如下所示
FROM node:12-alpine as builder
ENV TZ=Europe/London
RUN npm i npm@latest -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"]
Run Code Online (Sandbox Code Playgroud)
我在开发层运行,以便我们可以利用 nodemon 代码重新加载。
Docker 版本:Docker 版本 19.03.13,内部版本 4484c46d9d
docker-compose 版本:docker-compose 版本 1.27.4,内部版本 40524192
所以在尝试了一些奇怪的东西之后,我发现的答案是:
这样做之后:
请记住重新启动运行 compose 的 shell。
来自未来的编辑:有时它仍然会表现不佳,因此这可能无法解决每个人的问题
归档时间: |
|
查看次数: |
1945 次 |
最近记录: |