Docker терпит неудачу при npm установке - PullRequest
0 голосов
/ 10 февраля 2020

Я новичок в Docker, и я хотел попробовать Dockerizing мое приложение узла.

Я пытался следовать указаниям на nodejs .org , но Я получаю ошибки на npm install.

Вот мой Dockerfile:

# Use the latest 'node' official version
FROM node:current

# Set working directory to /usr/src/app
WORKDIR /usr/src/app

# Copy package.json, package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy all remaining files from the current directory
  # Note: 'node_modules' will not be overwritten because of .dockerignore
  # See: .dockerignore for the full list of ignored files
COPY . .

EXPOSE 3031

# Start the container using the server:watch command
CMD ["npm", "start"]

Вот ошибки, которые я получаю:

server$ docker build -t test .
Sending build context to Docker daemon  1.716MB
Step 1/8 : FROM node:current
 ---> b6f455933a97
Step 2/8 : WORKDIR /usr/src/app
 ---> Running in fbc7ef703e8f
Removing intermediate container fbc7ef703e8f
 ---> 18682f683fa1
Step 3/8 : COPY package*.json ./
 ---> 6f8ab073929f
Step 4/8 : RUN npm install
 ---> Running in 3105e1f65514
npm WARN tarball tarball data for @babel/parser@7.8.4 (sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for source-map@0.5.7 (sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for source-map@0.5.7 (sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for tslint@6.0.0 (sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for nodemailer@6.4.2 (sha512-g0n4nH1ONGvqYo1v72uSWvF/MRNnnq1LzmSzXb/6EPF3LFb51akOhgG3K2+aETAsJx90/Q5eFNTntu4vBCwyQQ==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for @babel/parser@7.8.4 (sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==) seems to be corrupted. Trying one more time.
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/@graphql-toolkit/schema-merging-eb6c200d/index.esm.js'
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/@graphql-toolkit/core-0eb20c1b/index.esm.js'
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/@types/node-66ad0ba4/https.d.ts'
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/@graphql-toolkit/schema-merging-05667067/index.esm.js'
...
...
...
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/apollo-language-server-f6cf3e14/lib/engine/GraphQLDataSource.d.ts'
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/apollo-language-server-f6cf3e14/lib/graphqlTypes.d.ts'
npm WARN tar ENOENT: no such file or directory, open '/usr/src/app/node_modules/.staging/serverless-146aad15/lib/plugins/create/templates/aws-clojure-gradle/gradlew'
npm WARN server@0.0.2 No repository field.

npm ERR! Maximum call stack size exceeded
npm WARN tarball tarball data for source-map@0.5.7 (sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=) seems to be corrupted. Trying one more time.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-02-10T10_05_40_789Z-debug.log
The command '/bin/sh -c npm install' returned a non-zero code: 1

Дополнительная информация:

  • Я в Ubuntu 18.04
  • npm Установка всегда работает на моем локальном компьютере (за пределами docker). Кажется, он работает только на Docker.
  • Иногда ошибка заканчивается на npm ERR! code EINTEGRITY.
  • Иногда docker бесконечно зависает после первых нескольких npm WARN.
  • На момент публикации этого вопроса я использовал последнюю версию LTS из nvm ls-remote (12.15.0). Аналогичным образом я попытался выполнить переход к узлу 10 для локального и docker, но безуспешно.

Пожалуйста, помогите.

Редактировать: Пример npm ERR! code EINTEGRITY ошибка, которую я получаю.

npm WARN tar ENOENT: no such file or directory, open '/home/node/node_modules/.staging/@storybook/core-bb4e5c86/dll/storybook_ui-manifest.json'
npm WARN server@0.0.2 No repository field.

npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting validator@12.2.0:
npm ERR! Verification failed while extracting validator@12.2.0:
npm ERR! sha512-jJfE/DW6tIK1Ek8nCfNFqt8Wb3nzMoAbocBF6/Icgg1ZFSBpObdnwVY2jQj6qUqzhx5jc71fpvBWyLGO7Xl+nQ== integrity checksum failed when using sha512: wanted sha512-jJfE/DW6tIK1Ek8nCfNFqt8Wb3nzMoAbocBF6/Icgg1ZFSBpObdnwVY2jQj6qUqzhx5jc71fpvBWyLGO7Xl+nQ== but got sha512-jbNiuTRS00nR58EcP7CCq2ld+M2yyKOEkKI0NwbUVCPecBmMiR8MFA7D7h/qKBzL+7DnmbZaNdPQr7DxIMGyoQ==. (69097 bytes)

Edit # 2 Пример вывода, когда I npm устанавливается после снятия блокировки пакета. json (зависает бесконечно при конец).

$ npm install
npm WARN deprecated tslint@6.0.0: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.
npm WARN deprecated apollo-codegen@0.19.1: The 'apollo-codegen' command has been replaced with the more-powerful 'apollo' CLI. Switch to 'apollo' to ensure future updates and visit https://npm.im/apollo#code-generation for more information.
npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated @types/get-port@4.2.0: This is a stub types definition. get-port provides its own type definitions, so you do not need this installed.
npm WARN deprecated superagent@3.8.3: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.
npm WARN deprecated @types/vfile-message@2.0.0: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed.
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
npm WARN tarball tarball data for validator@^12.2.0 (sha512-jJfE/DW6tIK1Ek8nCfNFqt8Wb3nzMoAbocBF6/Icgg1ZFSBpObdnwVY2jQj6qUqzhx5jc71fpvBWyLGO7Xl+nQ==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for typescript@^3.7.5 (sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for yargs@^15.0.0 (sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for web-resource-inliner@^4.3.3 (sha512-agVAgRhOOi4GVlvKK34oM23tDgH8390HfLnZY2HZl8OFBwKNvUJkH7t89AT2iluQP8w9VHAAKX6Z8EN7/9tqKA==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for refractor@^2.4.1 (sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==) seems to be corrupted. Trying one more time.
[            ......] | extract:@types/history: sill extract @types/history@* extracted to /home/node/node_modules/.staging/@types/history-677b6da5 (5080ms)

Edit # 3 Вставка моего пакета. json здесь (исключая сценарии, описание и автора). Не существует пользовательского npm скрипта установки или постинсталляции.

{
    "name": "server",
    "version": "0.0.2",
    "main": "handler.js",
    "dependencies": {
        "@koa/router": "^8.0.7",
        "@types/aws-lambda": "^8.10.40",
        "@types/base64-url": "^2.2.0",
        "@types/bcryptjs": "^2.4.2",
        "@types/graphql-depth-limit": "^1.1.2",
        "@types/jsonwebtoken": "^8.3.7",
        "@types/koa": "^2.11.0",
        "@types/koa-bodyparser": "^4.3.0",
        "@types/koa-logger": "^3.1.1",
        "@types/koa-passport": "^4.0.2",
        "@types/koa__router": "^8.0.2",
        "@types/lodash": "^4.14.149",
        "@types/mongodb": "^3.3.15",
        "@types/mongoose": "^5.7.0",
        "@types/node": "^13.7.0",
        "@types/nodemailer": "^6.4.0",
        "@types/object-hash": "^1.3.1",
        "@types/passport": "^1.0.2",
        "@types/passport-local": "^1.0.33",
        "@types/react": "^16.9.19",
        "@types/react-dom": "^16.9.5",
        "@types/redis": "^2.8.14",
        "@types/validator": "^12.0.1",
        "apollo-server-cache-redis": "^1.1.5",
        "apollo-server-koa": "^2.10.0",
        "base64-url": "^2.3.3",
        "bcryptjs": "^2.4.3",
        "can-error": "^0.2.0",
        "classnames": "^2.2.6",
        "dataloader": "^2.0.0",
        "dotenv": "^8.2.0",
        "graphql": "^14.6.0",
        "graphql-depth-limit": "^1.1.0",
        "graphql-middleware": "^4.0.2",
        "graphql-query-complexity": "^0.4.1",
        "graphql-rate-limit": "^2.0.1",
        "graphql-scalars": "^1.0.6",
        "graphql-shield": "^7.0.10",
        "graphql-tools": "^4.0.6",
        "http-status-codes": "^1.4.0",
        "iexcloud_api_wrapper": "^1.1.5",
        "jsonschema": "^1.2.5",
        "jsonwebtoken": "^8.5.1",
        "juice": "^6.0.0",
        "koa": "^2.11.0",
        "koa-bodyparser": "^4.2.1",
        "koa-logger": "^3.2.1",
        "koa-passport": "^4.1.3",
        "lodash": "^4.17.15",
        "moment": "^2.24.0",
        "mongodb-memory-server": "^6.2.4",
        "mongoose": "^5.8.11",
        "nodemailer": "^6.4.2",
        "object-hash": "^2.0.1",
        "passport-local": "^1.0.0",
        "react": "^16.12.0",
        "react-dom": "^16.12.0",
        "react-jss": "^10.0.4",
        "redis": "^2.8.0",
        "saslprep": "^1.0.3",
        "serverless-http": "^2.3.1",
        "source-map-support": "^0.5.16",
        "typescript": "^3.7.5",
        "validator": "^12.2.0",
        "winston": "^3.2.1"
    },
    "devDependencies": {
        "@babel/core": "^7.8.4",
        "@babel/preset-env": "^7.8.4",
        "@babel/preset-typescript": "^7.8.3",
        "@geut/chan": "^2.1.1",
        "@graphql-codegen/cli": "^1.12.2",
        "@graphql-codegen/typescript": "^1.12.2",
        "@storybook/addon-docs": "^5.3.12",
        "@storybook/addon-knobs": "^5.3.12",
        "@storybook/addon-storyshots": "^5.3.12",
        "@storybook/addon-viewport": "^5.3.12",
        "@storybook/addons": "^5.3.12",
        "@storybook/components": "^5.3.12",
        "@storybook/preset-create-react-app": "^1.5.2",
        "@storybook/react": "^5.3.12",
        "@storybook/theming": "^5.3.12",
        "@types/faker": "^4.1.9",
        "@types/jest": "^25.1.2",
        "@typescript-eslint/eslint-plugin": "^2.19.0",
        "@typescript-eslint/eslint-plugin-tslint": "^2.19.0",
        "@typescript-eslint/parser": "^2.19.0",
        "audit-ci": "^2.4.2",
        "aws-lambda": "^1.0.5",
        "babel-loader": "^8.0.6",
        "babel-plugin-require-context-hook": "^1.0.0",
        "customize-cra": "^0.9.1",
        "eslint": "^6.8.0",
        "eslint-config-prettier": "^6.10.0",
        "eslint-config-react": "^1.1.7",
        "eslint-config-standard": "^14.1.0",
        "eslint-import-resolver-alias": "^1.1.2",
        "eslint-plugin-import": "^2.20.1",
        "eslint-plugin-mdx": "^1.6.8",
        "eslint-plugin-node": "^11.0.0",
        "eslint-plugin-prefer-arrow": "^1.1.7",
        "eslint-plugin-prettier": "^3.1.2",
        "eslint-plugin-promise": "^4.2.1",
        "eslint-plugin-react": "^7.18.3",
        "eslint-plugin-standard": "^4.0.1",
        "faker": "^4.1.0",
        "jest": "^25.1.0",
        "jest-transform-graphql": "^2.1.0",
        "node-loader": "^0.6.0",
        "nodemon": "^2.0.2",
        "npm-run-all": "^4.1.5",
        "prettier": "^1.19.1",
        "react-scripts": "^3.3.1",
        "serverless": "^1.63.0",
        "serverless-dotenv-plugin": "^2.3.1",
        "serverless-offline": "^5.12.1",
        "serverless-webpack": "^5.2.0",
        "ts-loader": "^6.2.1",
        "tsconfig-paths-jest": "0.0.1",
        "tslint": "^6.0.0",
        "webpack": "^4.41.5",
        "webpack-cli": "^3.3.10",
        "webpack-graphql-loader": "^1.0.2"
    }
}

1 Ответ

3 голосов
/ 10 февраля 2020

Раньше я получал эту ошибку из-за низкой или прерывистой полосы пропускания inte rnet.

...