Использование докера Jekyll внутри Jenkins - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь создать веб-сайт jekyll через мой сервер Jenkins (который работает внутри контейнера), и у меня есть этап в Jenkinsfile, который выглядит следующим образом:

stage('Building Website') {

      agent {

        docker {
            image 'jekyll/jekyll:builder'
        }

      }

      steps {
        sh 'jekyll --version'
      }
}

Самый первыйКогда я запускаю свою работу, он извлекает образ докера jekyll и работает нормально (хотя он и получает кучу драгоценных камней перед запуском jekyll, что не происходит, когда я запускаю докер вручную вне jenkins), но затем следующие задания завершаются с ошибкой:

jekyll --version
/usr/jekyll/bin/jekyll: exec: line 15: /usr/local/bundle/bin/jekyll: not found

Есть идеи, что я тут не так делаю?

1 Ответ

0 голосов
/ 07 января 2019

Как видно из файла журнала jenkins, jenkins запускает docker с аргументом -u 1000:1000, поскольку этот пользователь не завершает работу в образе jekyll/jekyll, команда завершается с ошибкой .../bin/jekyll: not found

Вот образец Jenkinsfile:

pipeline {
    agent
    {
        docker
        {
            image 'jekyll/jekyll:3.8'
            args '''
                -u root:root
                -v "${WORKSPACE}:/srv/jekyll"
            '''
        }
    }
    stages {
        stage('Test') {
            steps {
                sh '''
                    cd /srv/jekyll
                    jekyll --version
                '''
            }
        }
    }
}
...