Шаг сборки Jenkins завершается неудачно при запуске команды npm install - PullRequest
0 голосов
/ 14 февраля 2019

Я устанавливаю конвейер сборки Jenkins для приложения vue.У меня есть простой Dockerfile для сборки и запуска приложения VUE в качестве контейнера.Когда я пытаюсь собрать приложение на моем ПК, сборка Docker успешно завершается без ошибок.

Однако, как только процесс сборки Jenkins запущен, команда Dockerfile RUN npm install возвращает ошибку, пока этап сборкив процессе.

Я проверил пространство подкачки сервера, ошибка не связана с этим.Вручную я выполнил установочный файл npm для файла package.json на сервере.

У кого-нибудь есть опыт выполнения команд npm на этапе конвейера Jenkins?

Вот оба файла Dockerfile иJenkinsfile, который я использовал

Dockerfile

# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Jenkinsfile

#!/usr/bin/env groovy

pipeline {
    options {
        timeout(time: 1, unit: 'HOURS')
    }

    agent none

    stages {
        stage('Pre process') {
            agent any
            steps {
                script {
                    ...
                }       
                ...               
            }
        }
        stage('Build') {
            agent any
            steps {
                sh 'docker build -t frontend'
            }
        }
        stage('Run') {
            agent any
            steps {
                sh 'docker run ..... '
            }
        }
        stage('Update') {
            agent any
            steps {
                e..
            }
        }
        stage('Test & Clean-up') {
            ....
        }
    } // stages
} // pipeline

Сообщение об ошибке

Step 4/10 : RUN npm install

 ---> Running in 80e0beb9442a



> node-sass@4.11.0 install /app/node_modules/node-sass

> node scripts/install.js





Service 'frontend' failed to build: The command '/bin/sh -c npm install' returned a non-zero code: 1

script returned exit code 1

1 Ответ

0 голосов
/ 15 февраля 2019

Разница может быть в том, что у вас нет точной версии образа узла в вашем Dockerfile.Он может отличаться на вашем компьютере и на сервере.Попробуйте изменить это на какую-то фиксированную версию, например node:10.15.1-alpine.

Также временно попробуйте docker build с параметром --no-cache, чтобы избежать проблем, вызванных слоями кэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...