web-dev-qa-db-ja.com

Azure Pipelines Yamlの許可が拒否されました

Azure Pipelinesを使用してデプロイしようとしているときにエラーが発生しています。

Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
 _

私はそのBecuaseが段階間で共有されていないと思います。しかし、私はそれをするための適切な方法が何であるかを理解することができません。

これが私のyamlファイルです:

variables:
  - group: netlify

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

stages: 
  - stage: Build
    jobs:
      - job: ARM
        steps:
        - task: NodeTool@0
          inputs:
            versionSpec: '10.x'
          displayName: 'Install Node.js'

        - script: |
            npm install
            npm run unit
          displayName: 'Setup and test'

        - script: npm run build
        - publish: $(System.DefaultWorkingDirectory)
          artifact: dist
  - stage: Deploy
    dependsOn: Build
    condition: succeeded()
    jobs:
      - job: APP
        steps:
        - bash: |
           npm i -g netlify-cli
           netlify deploy --site $(NETLIFY_SITE_ID) --auth $(NETLIFY_AUTH_TOKEN) --prod
 _

NPMインストールを実行した後、パッケージnode_modulesはディレクトリに何らかの表示されるべきですが、正しく共有されていないようです。

6
Alex T

Ubuntu imageを使用しており、グローバルインストールnetlify-cli inLinux Sudoなしでインストールします。

Ubuntuが必要なシステムである必要がある場合は、このコマンドの前にSudoを追加してください。

Sudo npm i -g netlify-cli

私のパイプラインでコマンドは成功します

このDOCでは、 * NIX(OSX、Linuxなど

デフォルトインストーラを使用してNodeをインストールした場合は、特にLinux、またはOS Xでこれらのコマンドをプレフィックスする必要があるかもしれません。

同じで [〜#〜] vsts [〜#〜] 、コマンドでSudoを使用してUbuntuのためのパスワードの少ない数sudo権限を持つ必要があります。

enter image description here


ビルド環境の特別な要件がない場合、もう1つの方法はvs2017-win2016に画像を変更することです。

pool:
  vmImage: 'vs2017-win2016'

このイメージを使用するときは、何もインストールでき、使用する必要はありませんSudo


実際、node.jsなど、ホストされているすべてのイメージに多くの基本的なツールをプレインストールしました。

私たちの中で github説明 、私たちはすべての画像に対してプレインストールされたすべてのツールをリストしました。あなたはVSTSについてもっと知ることを確認することができます。

1