各位前輩好,目前運行一個專案,內容概略如下:
在運行一個jenkins的job裡面,能去抓在dockerhub裡面的dockerfile並執行,並會在job裡額外增加一些shell script(目前想到是執行下載vim並秀出vim的下載位置)。
請問有人知道要如何使用呢?目前是有看到docker slave plugin好像可以用,但我都嘗試失敗了,有其他更好的解決辦法嗎?先感謝各位前輩了!!
你可以透過在Jenkins中建立一個Freestyle job或Pipeline job,並使用Docker Pipeline plugin或Docker Slaves plugin來執行Dockerfile。
使用Docker Pipeline plugin:
步驟1: 安裝Docker Pipeline plugin。
步驟2: 在Jenkins job中,新增一個"Pipeline"步驟並設定內容,例如:
pipeline {
agent {
dockerfile true
}
stages {
stage('Build') {
steps {
sh 'echo "Building..."'
sh 'docker build -t myimage .'
}
}
stage('Run') {
steps {
sh 'echo "Running..."'
sh 'docker run myimage'
}
}
}
}
步驟3: 在Jenkins slave中安裝Docker,以便在Docker容器中建構及運行Docker映像。
使用Docker Slaves plugin:
步驟1: 安裝Docker Slaves plugin。
步驟2: 在Jenkins job中,新增一個"Restrict where this project can be run"步驟,選擇"Dockerslave"。
步驟3: 在Jenkins slave中安裝Docker,以便在Docker容器中建構及運行Docker映像。
步驟4: 在Jenkins job中,新增一個"Execute shell script on remote host using ssh"步驟,執行以下命令:
docker build -t myimage .
docker run myimage
步驟5: 在Jenkins job中,新增一個"Execute shell script on remote host using ssh"步驟,執行shell script,例如:
sudo apt-get update
sudo apt-get install vim
which vim
注意:請確認Jenkins slave的權限足以執行上述命令和shell script。