iT邦幫忙

1

如何在Jenkins裡面執行docker file呢

各位前輩好,目前運行一個專案,內容概略如下:

在運行一個jenkins的job裡面,能去抓在dockerhub裡面的dockerfile並執行,並會在job裡額外增加一些shell script(目前想到是執行下載vim並秀出vim的下載位置)。

請問有人知道要如何使用呢?目前是有看到docker slave plugin好像可以用,但我都嘗試失敗了,有其他更好的解決辦法嗎?先感謝各位前輩了!!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-21 10:02:40

你可以透過在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。

我要發表回答

立即登入回答