【发布时间】:2020-09-07 22:10:34
【问题描述】:
你好我有以下文件夹结构
main
|- .docker-compose.yml
|- backend/
|- micro-hr/
|-.dockerfile
|- rabbitmq
我的码头工人撰写:
micro-hr:
build:
context: .
dockerfile: backend/micro-hr/Dockerfile
entrypoint: /usr/src/api/.docker/entrypoint.sh
container_name: micro-hr
environment:
- CHOKIDAR_USEPOLLING=true
ports:
- 3001:3000
我的码头文件:
FROM node:lts-alpine
#create app directory
#xx
RUN mkdir /usr/src
RUN apk add --no-cache bash git
RUN touch /usr/src/.bashrc | echo "PS1='\w\$ '" >> /usr/src/.bashrc
#copy files
COPY backend/micro-hr/ormconfig.ts backend/micro-hr/.env backend/micro-hr/package.json backend/micro-hr/yarn.* /usr/src/api/
COPY backend/rabbitmq/package.json /usr/src/rabbitmq/
#install modules lib modules
RUN cd /usr/src/api/ && npm install
#copy other files
COPY backend/micro-hr/ /usr/src/api/
COPY backend/rabbitmq /usr/src/rabbitmq
RUN chown -R node:node /usr/src/api
RUN chown -R node:node /usr/src/rabbitmq
WORKDIR /usr/src/api
#set work dir
USER node
我的 entrypoint.sh:
#!/bin/bash
npm config set cache /usr/src/api/.npm-cache --global
cd /usr/src/api
npm install
npm run start:dev
我在 docker-compose up --build 上遇到了这个错误:
micro-hr | > micro-hr@1.0.0 postinstall /usr/src/api
micro-hr | > npm link ../rabbitmq/
micro-hr |
micro-hr | npm ERR! code EACCES
micro-hr | npm ERR! syscall symlink
micro-hr | npm ERR! path /usr/src/rabbitmq
micro-hr | npm ERR! dest /usr/local/lib/node_modules/rabbitmq
micro-hr | npm ERR! errno -13
micro-hr | npm ERR! Error: EACCES: permission denied, symlink '/usr/src/rabbitmq' -> '/usr/local/lib/node_modules/rabbitmq'
micro-hr | npm ERR! [Error: EACCES: permission denied, symlink '/usr/src/rabbitmq' -> '/usr/local/lib/node_modules/rabbitmq'] {
micro-hr | npm ERR! errno: -13,
micro-hr | npm ERR! code: 'EACCES',
micro-hr | npm ERR! syscall: 'symlink',
micro-hr | npm ERR! path: '/usr/src/rabbitmq',
micro-hr | npm ERR! dest: '/usr/local/lib/node_modules/rabbitmq'
micro-hr | npm ERR! }
和:
微小时 | npm WARN checkPermissions 缺少写权限 到 /usr/src/api/node_modules/has-symbols 微小时 | npm WARN checkPermissions 缺少对 /usr/src/api/node_modules/highlight.js
我知道这是权限问题,但我不知道如何解决。 问题是在安装我的 npm 链接模块时:
"postinstall": "npm link ../rabbitmq/",
"postupdate": "npm link ../rabbitmq/",
【问题讨论】:
-
您的
npm run start:dev脚本是否尝试创建/usr/local/etc? -
是这样的:"start:dev":"ts-node-dev --inspect --respawn --transpile-only --ignore-watch node_modules -r tsconfig-paths/register src/index .ts",
-
@Narigo 我编辑问题
标签: docker docker-compose