Я пытаюсь создать простой образ 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: последний».
Мне кажется, что мои команды должны выполняться внутри моего контейнера, а не на моем сервере сборки.Что я делаю неправильно?