एनपीएम जोड़ने से निजी रेपो में विफल रहता है के साथ की अनुमति से इनकार किया है जब यह एक मौजूदा परियोजना

0

सवाल

मैं कोशिश कर रहा हूँ डिबग करने के लिए इस सुपर अजीब मुद्दा । मिला, जहां मैं एक परियोजना की कोशिश कर रहा हूँ करने के लिए स्थापित एक निजी भंडार के साथ npm आदेश ।

यह काम नहीं करता है जब यह एक मौजूदा परियोजना में करता है लेकिन जब यह एक नव निर्मित परियोजना है कि बस के साथ बनाया गया npm init.

मौजूदा परियोजना में है /app और नई परियोजना में /opt (परीक्षण के लिए)

चल रहा है npm add git+ssh://[email protected]:company/repository.git में /app के साथ देता है:

npm ERR! code 128
npm ERR! An unknown git error occurred
npm ERR! command git --no-replace-objects ls-remote ssh://[email protected]/company/repository.git
npm ERR! [email protected]: Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-11-24T00_25_10_559Z-debug.log

चल रहा है सटीक एक ही कमान से /opt परियोजना स्थापित पैकेज सही ढंग से किसी भी मुद्दे के बिना.

मैं चल रहा हूँ इस से एक अल्पाइन डोकर बॉक्स के साथ openssh स्थापित किया गया है ।

इस Dockerfile

FROM node:16.13-alpine

RUN apk add --no-cache openssh-client git python2

RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts && ln -s /run/secrets/ssh_key ~/.ssh/id_rsa && ln -s /run/secrets/ssh_pub_key ~/.ssh/id_rsa.pub

RUN mkdir /app

WORKDIR /app

कुछ और अधिक जानकारीपूर्ण सामान

/app # node -v
v16.13.0
/app # npm -v
8.1.4
/app # ssh -T [email protected]
Hi AzaZPPL! You've successfully authenticated, but GitHub does not provide shell access.

package.json

{
    "name": "project",
    "version": "1.0.0",
    "private": true,
    "scripts": {
        "dev": "nuxt",
        "build": "nuxt build",
        "start": "nuxt start",
        "generate": "nuxt generate",
        "generate-schema": "node apollo/generate-schema.js",
        "lint": "eslint --ext .js,.vue --ignore-path .eslintignore .",
        "lintfix": "eslint --fix --ext .js,.vue --ignore-path .eslintignore ."
    },
    "dependencies": {
        "@nuxtjs/apollo": "^4.0.1-rc.4",
        "@nuxtjs/auth": "^4.9.1",
        "@nuxtjs/axios": "^5.12.2",
        "@nuxtjs/dayjs": "^1.2.1",
        "@nuxtjs/style-resources": "^1.0.0",
        "apollo-cache-inmemory": "^1.6.6",
        "copy-to-clipboard": "^3.3.1",
        "core-js": "^3.6.5",
        "date-fns": "^2.19.0",
        "dotenv": "^8.2.0",
        "filepond": "^4.27.1",
        "filepond-plugin-file-validate-type": "^1.2.6",
        "filepond-plugin-image-preview": "^4.6.6",
        "graphql-tag": "^2.11.0",
        "js-file-download": "^0.4.12",
        "jwt-decode": "^3.1.2",
        "lodash": "^4.17.20",
        "nuxt": "^2.14.6",
        "nuxt-buefy": "^0.4.10",
        "nuxt-i18n": "^6.15.4",
        "vee-validate": "^3.4.3",
        "vue": "^2.6.12",
        "vue-filepond": "^6.0.3"
    },
    "devDependencies": {
        "@babel/eslint-parser": "^7.16.3",
        "eslint": "^7.12.1",
        "eslint-config-prettier": "^6.15.0",
        "eslint-loader": "^4.0.2",
        "eslint-plugin-prettier": "^3.1.4",
        "eslint-plugin-vue": "^7.1.0",
        "prettier": "^2.1.2",
        "sass": "^1.32.8",
        "sass-loader": "^12.3.0"
    }
}

किसी भी विचार में यहाँ क्या हो रहा है?

docker git github node.js
2021-11-24 00:41:33
2
1

की कोशिश में अपने Dockerfile सेट करने के लिए

ENV GIT_SSH_COMMAND='ssh -Tv'

देना चाहिए कि आप और अधिक सुराग के रूप में करने के लिए क्यों अपने SSH कुंजी है या नहीं माना जाता है के दौरान npm add.

2021-11-24 08:02:52

सबसे अच्छा जवाब

1

की मदद से @VonC के जवाब मैं करने में सक्षम था बाहर आंकड़ा क्या चल रहा था.

पर एक करीब देखो लेने के लॉग, मैंने पाया है कि वहाँ से बाहर वास्तव में एक उपयोगकर्ता कहा जाता है node जो प्रयोग किया जाता है चल रहा है जब npm. के अंदर Dockerfile अल्पाइन की छवि इस उपयोगकर्ता बनाई जा रही थी और npm कॉन्फ़िगर किया गया है का उपयोग करने के लिए इस उपयोगकर्ता के लिए है.

तो क्या हुआ था जब भी मैं में लॉग इन डोकर कंटेनर में मैं में प्रवेश के रूप में root उपयोगकर्ता और सभी ssh कुंजी है, जो में सेट किया गया Dockerfile थे द्वारा चलाया जा रहा है root उपयोगकर्ता.

चल रहा है ssh -T [email protected] काम किया क्योंकि root उपयोगकर्ता सेटअप सही ढंग से है, लेकिन नहीं node उपयोगकर्ता

क्या मैं अभी भी नहीं मिल सकता है मेरे सिर के आसपास है, क्यों चल रहा है में आदेश /opt फ़ोल्डर काम करता है? वैसे भी है कि एक रहस्य के लिए एक अलग दिन है.

इस अद्यतन Dockerfile. मैं सेट ssh कुंजी के लिए node उपयोगकर्ता और प्रवेश के रूप में node उपयोगकर्ता

FROM node:16.13-alpine

RUN apk add --no-cache openssh-client git

RUN mkdir /app && chown node:node /app

USER node

RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts

RUN ln -s /run/secrets/ssh_key ~/.ssh/id_rsa

WORKDIR /app
2021-11-24 09:02:43

अच्छी पकड़ है, अच्छी तरह से किया! Upvoted.
VonC

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में