CircleCI 权限被拒绝为 Firebase 部署打开 firebase-tools.json
CircleCI permission denied opening firebase-tools.json for Firebase deployment
我正在使用 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
没有任何区别,除了非常特殊的情况。
此外,您可以使用 npx run firebase deploy
而不是这样做 ./node_modules/.bin/firebase deploy
,它首先查看本地 node_modules
,然后再查看全局。
我正在使用 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
没有任何区别,除了非常特殊的情况。
此外,您可以使用 npx run firebase deploy
而不是这样做 ./node_modules/.bin/firebase deploy
,它首先查看本地 node_modules
,然后再查看全局。