我正在尝试通过我的Jenkins服务器(在容器内运行)构建一个jekyll网站,并且在Jenkinsfile
中有一个如下所示的阶段:
stage('Building Website') {
agent {
docker {
image 'jekyll/jekyll:builder'
}
}
steps {
sh 'jekyll --version'
}
}
第一次运行作业时,它会拉开jekyll docker镜像并运行良好(尽管在运行jekyll之前确实会获取一堆gem,这在我在jenkins外部手动运行docker时不会发生),但是接下来的工作却失败了这个错误:
jekyll --version
/usr/jekyll/bin/jekyll: exec: line 15: /usr/local/bundle/bin/jekyll: not found
有任何想法我在这里做错了吗?
最佳答案
如您在jenkins日志文件中看到的,jenkins使用-u 1000:1000
参数运行docker,因为该用户未在jekyll/jekyll
镜像中退出,所以该命令失败,错误为.../bin/jekyll: not found
这是一个示例Jenkinsfile
:
pipeline {
agent
{
docker
{
image 'jekyll/jekyll:3.8'
args '''
-u root:root
-v "${WORKSPACE}:/srv/jekyll"
'''
}
}
stages {
stage('Test') {
steps {
sh '''
cd /srv/jekyll
jekyll --version
'''
}
}
}
}
关于docker - 在Jenkins中使用Jekyll docker ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53653112/