Dockerでプライベートnpmリポジトリを使用する

ゴクルカンダサミー

基本認証資格情報を持つsinopiaを使用してホストされているプラ​​イベートnpmリポジトリがあります。そして、私たちのアプリケーションはプライベートリポジトリのnpmパッケージを使用しています。認証トークンを作成して試しましたが、次の行でエラーが発生しますRUN npm install [email protected]

npm ERR! code E403
npm ERR! 403 Forbidden: [email protected]
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-07-05T10_55_25_752Z-debug.log

そして私Dockerfileは:

FROM keymetrics/pm2:latest-alpine
RUN mkdir -p /app
WORKDIR /app
COPY package.json ./
COPY .npmrc ./
RUN npm config set registry http://private.repo/:_authToken=CqgPS5l++vjD0n6ynxrVNg==.
RUN npm install [email protected]
RUN apk update && apk add yarn python g++ make && rm -rf /var/cache/apk/*
RUN set NODE_ENV=production
RUN npm config set registry https://registry.npmjs.org/
RUN npm install
COPY . /app
RUN ls -al -R
EXPOSE 51967
CMD [ "pm2-runtime", "start", "pm2.json" ]

そして、エラーログは次のとおりです。

11 verbose stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
11 verbose stack     at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
11 verbose stack     at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
11 verbose stack     at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
11 verbose stack     at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
11 verbose stack     at Async._drainQueue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
11 verbose stack     at Async._drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
11 verbose stack     at Immediate.Async.drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
11 verbose stack     at runCallback (timers.js:794:20)
11 verbose stack     at tryOnImmediate (timers.js:752:5)
11 verbose stack     at processImmediate [as _immediateCallback] (timers.js:729:5)

誰かがこれで私を助けることができますか?

エリオットブラックバーン

パッケージ[email protected]はあなたのプライベートパッケージだと思いますか?その場合、認証トークンが使用されていないか、何らかの理由でそのパッケージにアクセスできないように見えます。

構成~/.npmrcセットを使用するのではなくファイルを書き込んでみることができます。これは、次を使用する場合にすぎません。

RUN echo -e "//private.repo/:_authToken=... > ~/.npmrc

これにより、Dockerユーザーは、定義されたレジストリに対してそのトークンを使用して認証されます。これは、ほとんどの場合、npmの認証トークンを設定する方法です。

ちなみに、複数のRUNコマンドを次々に使用しないことを検討することをお勧めします。これにより、コマンドごとに新しいイメージレイヤーが作成され、コンテナーのサイズが大幅に大きくなる可能性があります。&& \コマンドの最後で使用してから、RUNビットなしで次のコマンドを新しい行に配置してみてください例えば:

FROM keymetrics/pm2:latest-alpine

RUN mkdir -p /app

WORKDIR /app

COPY package.json ./
COPY .npmrc ./

RUN npm config set registry http://private.repo/:_authToken=$AUTH_TOKEN && \
  npm install [email protected] && \
  apk update && apk add yarn python g++ make && rm -rf /var/cache/apk/* && \
  set NODE_ENV=production && \
  npm config set registry https://registry.npmjs.org/ && \
  npm install

COPY . /app

RUN ls -al -R

EXPOSE 51967

CMD [ "pm2-runtime", "start", "pm2.json" ]

読みやすくする必要がありますが、最終的なイメージは小さくなり、ビルドが少し速くなる可能性があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

組織がnpmで使用するプライベートリポジトリをホストできますか?

分類Dev

GoをプライベートGitLabリポジトリで使用する方法

分類Dev

プライベート npm リポジトリを使用した npm show

分類Dev

Dockerコンテナでプライベートgitリポジトリをプルする

分類Dev

gitlabプライベートリポジトリをdockerのgolang依存関係として使用する

分類Dev

Docker:sshを使用してプライベートgithubリポジトリにアクセスする方法は?

分類Dev

Google App EngineStandardのプライベートnpmレジストリを使用する

分類Dev

プライベートNPMリポジトリを終了します

分類Dev

BuildServerでVCSを使用してGitHubでComposerとプライベートリポジトリを使用する

分類Dev

プライベートリポジトリからNPMを使用してパッケージをインストールする

分類Dev

プライベートリポジトリからNPMを使用してパッケージをインストールする

分類Dev

dockerfileでプライベートgitリポジトリを複製する

分類Dev

ECSのpulumiでプライベートDockerレジストリからのイメージを使用する

分類Dev

プライベートNPMレジストリを使用してBitriseでReactNativeを構築する

分類Dev

プライベートリポジトリでGitKrakenを使用することはできません

分類Dev

Docker:プライベートGitHubリポジトリから取得する

分類Dev

HTTPS経由のプライベートGitHubリポジトリでComposerを使用する

分類Dev

GITの代わりにJenkinsでSVNプライベートリポジトリを使用する

分類Dev

npmのインストールには、Dockerのビルドステージ内でgithubプライベートリポジトリデプロイキーを使用します

分類Dev

自己署名証明書を使用してローカルDockerイメージをプライベートリポジトリにプッシュする

分類Dev

npmを使用して、プライベートリポジトリから「バイナリ」パッケージをグローバルにインストールして使用するにはどうすればよいですか?

分類Dev

Minikubeを使用している場合、プライベートリポジトリからDockerイメージをプルできません

分類Dev

docker-composeを使用してプライベートリポジトリからイメージをプルする

分類Dev

docker-composeを使用してプライベートリポジトリからイメージをプルする

分類Dev

Dockerプライベートリポジトリに保存できるDockerイメージの数

分類Dev

glide golangを使用してプライベートリポジトリをインストールする方法

分類Dev

Jenkinsfileの認証でプライベートDockerレジストリを使用する

分類Dev

プライベートDockerhubリポジトリからのDocker実行を自動化する方法は?

分類Dev

GitHubでHerokuconfig varsを使用してリモートプライベートリポジトリをインストールする方法は?

Related 関連記事

  1. 1

    組織がnpmで使用するプライベートリポジトリをホストできますか?

  2. 2

    GoをプライベートGitLabリポジトリで使用する方法

  3. 3

    プライベート npm リポジトリを使用した npm show

  4. 4

    Dockerコンテナでプライベートgitリポジトリをプルする

  5. 5

    gitlabプライベートリポジトリをdockerのgolang依存関係として使用する

  6. 6

    Docker:sshを使用してプライベートgithubリポジトリにアクセスする方法は?

  7. 7

    Google App EngineStandardのプライベートnpmレジストリを使用する

  8. 8

    プライベートNPMリポジトリを終了します

  9. 9

    BuildServerでVCSを使用してGitHubでComposerとプライベートリポジトリを使用する

  10. 10

    プライベートリポジトリからNPMを使用してパッケージをインストールする

  11. 11

    プライベートリポジトリからNPMを使用してパッケージをインストールする

  12. 12

    dockerfileでプライベートgitリポジトリを複製する

  13. 13

    ECSのpulumiでプライベートDockerレジストリからのイメージを使用する

  14. 14

    プライベートNPMレジストリを使用してBitriseでReactNativeを構築する

  15. 15

    プライベートリポジトリでGitKrakenを使用することはできません

  16. 16

    Docker:プライベートGitHubリポジトリから取得する

  17. 17

    HTTPS経由のプライベートGitHubリポジトリでComposerを使用する

  18. 18

    GITの代わりにJenkinsでSVNプライベートリポジトリを使用する

  19. 19

    npmのインストールには、Dockerのビルドステージ内でgithubプライベートリポジトリデプロイキーを使用します

  20. 20

    自己署名証明書を使用してローカルDockerイメージをプライベートリポジトリにプッシュする

  21. 21

    npmを使用して、プライベートリポジトリから「バイナリ」パッケージをグローバルにインストールして使用するにはどうすればよいですか?

  22. 22

    Minikubeを使用している場合、プライベートリポジトリからDockerイメージをプルできません

  23. 23

    docker-composeを使用してプライベートリポジトリからイメージをプルする

  24. 24

    docker-composeを使用してプライベートリポジトリからイメージをプルする

  25. 25

    Dockerプライベートリポジトリに保存できるDockerイメージの数

  26. 26

    glide golangを使用してプライベートリポジトリをインストールする方法

  27. 27

    Jenkinsfileの認証でプライベートDockerレジストリを使用する

  28. 28

    プライベートDockerhubリポジトリからのDocker実行を自動化する方法は?

  29. 29

    GitHubでHerokuconfig varsを使用してリモートプライベートリポジトリをインストールする方法は?

ホットタグ

アーカイブ