Дженкинс: Не удается запустить команды внутри контейнера Docker - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь создать простой образ Docker и затем запускать команды внутри него, используя Jenkins Pipeline.Я в замешательстве, потому что я, кажется, выполняю команды на моем сервере сборки, а не внутри моего док-контейнера.Когда я запускаю 'pwd' внутри моего встроенного контейнера, выполняя следующее:

node ('docker2') {
    docker.withRegistry('https://my-registry.com', 'my-creds') {

        stage ('Checkout SCM') {
            checkout scm
        }

        // Build Docker image from Dockerfile
        stage ('Build Docker Image') {
            def myImage = docker.build("my-image:${env.BUILD_ID}")

            myImage.inside {
                sh 'pwd'
            }
        }
    }
}

Возвращает "/ home / build / workspace / Docker-Build-And-Push", который, по-видимому, является рабочим каталогом изкоторый я создаю мой контейнер, а не каталог внутри самого контейнера.

Кроме того, когда я пытаюсь запустить «mkdir test» внутри моего контейнера, он создает тестовый каталог на моем сервере сборки, а не контейнер.Но когда я запускаю «hostname», он не возвращает имя хоста моего сервера сборки, а скорее случайную строку чисел, так что, похоже, она исходит из моего контейнера ...

Мой Dockerfile чрезвычайно прости просто содержит «ОТ Alpine: последний».

Мне кажется, что мои команды должны выполняться внутри моего контейнера, а не на моем сервере сборки.Что я делаю неправильно?

1 Ответ

0 голосов
/ 24 октября 2018

Jenkins монтирует рабочую область в вашем док-контейнере с помощью параметра -v .Таким образом, вы видите структуру каталогов вашего сервера сборки, и если вы создаете файл, он фактически создается в рабочей области.

Вы должны увидеть точную команду docker в журналах вашей сборки.

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