0

Heroku ビルド パックを作成していますが、ビルド パックでデプロイするときに npm 権限が拒否されます。ビルドログからのエラーは次のとおりです。実行時に許可が拒否されましたnpm install

remote: /tmp/buildpack_47ff480d86444378a118f5abcd37cc34/bin/compile:       
35: /tmp/tools/npm: Permission denied

npm を tar.gz にパッケージ化して使用しています。

私のcompileファイルでは:

#!/bin/sh

export BUILD_DIR=$1
export CACHE_DIR=$2
export ENV_DIR=$3

export TOOLS_URL="https://s3.amazonaws.com/heroku-hzhu/tools.tar.gz"
export TOOLS_DIR="/tmp/tools"

#---- install pre-built tools from tarball ---------------------------------

curl -o $(dirname ${TOOLS_DIR})/tools.tar.gz ${TOOLS_URL}
(cd $(dirname ${TOOLS_DIR}) ; tar -xzvf tools.tar.gz; rm -f  tools.tar.gz)

# add node and npm to path
export NODE_HOME=${TOOLS_DIR}/node-v0.10.29-linux-x64
export PATH=${PATH}:${NODE_HOME}/bin

export NPM_HOME=${TOOLS_DIR}/npm
export PATH=${PATH}:${NPM_HOME}/bin

#---- compile app --------------------------------------------------------------

(cd ${BUILD_DIR} ; ${TOOLS_DIR}/lein cljsbuild once dev)

#---- install node packages ----------------------------------------------------

(cd ${BUILD_DIR} ; ${TOOLS_DIR}/npm install)
4

1 に答える 1

1

それらをパッケージ化するとき、または展開するときに、実行可能ビットが欠落している可能性はありますnpmか? nodeそれが、この「許可が拒否されました」というエラーが私にはどのように見えるかです。

これをローカルでテストできますか?

また、node特定の理由で 0.10.29 に依存していますか? 最新の安定版nodeは 0.10.36 であり、いくつかの重要なセキュリティ修正が含まれているためです。(ただし、それらはあなたに影響を与えないかもしれません。)

于 2015-02-28T23:04:35.057 に答える