如何解决CircleCI权限被拒绝打开用于Firebase部署的firebase-tools.json
我正在使用Firebase托管我的个人网站,并希望集成CircleCI以实现更快的集成。但是,我在部署步骤中收到此错误:
注意 在deploy命令之前添加sudo也会导致构建失败
/home/circleci/project/node_modules/configstore/index.js:52
throw error;
^
Error: EACCES: permission denied,open '/home/circleci/.config/configstore/firebase-tools.json'
You don't have access to this file.
以下是我项目的yaml配置:
---
commands:
restore_cache_cmd:
description: "Restore cached npm install"
steps:
- restore_cache:
key: 'dependency-cache-{{checksum "package.json"}}'
save_cache_cmd:
description: "Saving npm install"
steps:
- save_cache:
key: 'dependency-cache-{{ checksum "package.json"}}'
paths:
- "./node_modules"
update:
description: "Installing project's dependencies"
steps:
- checkout
- restore_cache_cmd
- run: sudo npm i -g npm@latest
- run: sudo npm i
- save_cache_cmd
build_deploy:
description: "Building project"
steps:
- run:
name: Build
command: sudo npm run build
- run:
name: Deploy
command: ./node_modules/.bin/firebase deploy --token=$FIREBASE_DEPLOY_TOKEN -- only hosting
executors:
docker-executor:
docker:
- image: "cimg/node:12.14.1"
jobs:
build_site:
executor: docker-executor
working_directory: ~/Darryls-Personal-Site
steps:
- update
- build_deploy
version: 2.1
workflows:
build_site:
jobs:
- build_site:
filters:
branches:
only: master
我已经通过其他问题完成的步骤:
- 使用firebase login:ci获取刷新令牌,并将其放入CircleCI项目环境中的环境变量中
- 使用npm install --save-dev firebase-tools
解决方法
我认为问题在于您使用npm
来运行所有sudo
命令,除了firebase deploy
命令。
您绝对应该使用当前用户而不是超级用户运行所有内容。
在official tutorials中,您会看到sudo
没有任何运行,除了非常特殊的情况。
此外,您可以使用./node_modules/.bin/firebase deploy
来代替npx run firebase deploy
,它首先要在本地node_modules
中查找,然后在全局中查找。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。