[英]Why I can't run any docker commands inside my Jenkins Docker container?
[英]Jenkins: Can't run commands inside Docker container
我正在嘗試構建一個簡單的Docker映像,然后使用Jenkins Pipeline在其中運行命令。 我很困惑,因為我似乎是在構建服務器上而不是在Docker容器內執行命令。 當我通過運行以下命令在內置容器中運行“ 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”時,它在構建服務器(而不是容器)中創建了一個測試目錄。 但是,當我運行“主機名”時,它不會返回構建服務器的主機名,而是返回一個隨機的數字字符串,因此這似乎來自我的容器...
我的Dockerfile非常簡單,僅包含“ FROM alpine:latest”。
在我看來,我的命令應該在我的容器中而不是在我的構建服務器上運行。 我究竟做錯了什么?
Jenkins使用-v
參數將工作區安裝在docker容器中。 因此,您將看到構建服務器的目錄結構,並且如果您創建文件,則該文件實際上是在工作空間中創建的。
您應該能夠在生成的日志中看到確切的docker命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.