【发布时间】:2021-01-22 12:32:38
【问题描述】:
我正在尝试在我们的 Azure 管道中创建一个任务来验证我们的 javascript。 我们有一个节点容器,它在启动时执行 npm 安装:
node:
image: node:12-alpine
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=development
volumes:
- ./:/home/node/app
expose:
- "8081"
command: "npm install"
为了执行我的任务,我在 Makefile 中创建了一个 make 命令:
js-check: ## Run Jshint
docker-compose run node npm install && npm run jshint
然后我在构建作业中调用如下:
- script: make js-check
displayName: 'Run JSHint'
当我在本地调用 make js-check 时,它会执行安装,然后是输出 0 个发现的漏洞的 jshint。但是,当管道远程到达此任务时,它无法声称缺少对 /home/node/app 的写访问权限
npm WARN checkPermissions Missing write access to /home/node/app
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /home/node/app
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/home/node/app'
npm ERR! [Error: EACCES: permission denied, access '/home/node/app'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/home/node/app'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
【问题讨论】:
-
嗨,您有机会查看以下解决方案吗?你过得怎么样?
标签: node.js docker makefile azure-pipelines jshint