Docker 詹金斯管道阿尔卑斯代理公司“;apk更新错误:无法锁定数据库:权限被拒绝;
我正在使用Alpine docker image作为Jenkins管道代理,但在运行Docker 詹金斯管道阿尔卑斯代理公司“;apk更新错误:无法锁定数据库:权限被拒绝;,docker,jenkins,jenkins-pipeline,alpine,Docker,Jenkins,Jenkins Pipeline,Alpine,我正在使用Alpine docker image作为Jenkins管道代理,但在运行apk update或apk add package时,我不断收到权限拒绝错误。在运行apt update或apt install 这是我的詹金斯档案: 管道{ 一号特工 舞台{ 阶段('初始化'){ 任何代理人 台阶{ 校验scm } } 阶段('Git克隆'){ 代理{docker{image'alpine:3.12.0'} 台阶{ “嘘” apk更新; apk add——无缓存git; apk add——无
apk update
或apk add package
时,我不断收到权限拒绝错误。在运行apt update
或apt install
这是我的詹金斯档案:
管道{
一号特工
舞台{
阶段('初始化'){
任何代理人
台阶{
校验scm
}
}
阶段('Git克隆'){
代理{docker{image'alpine:3.12.0'}
台阶{
“嘘”
apk更新;
apk add——无缓存git;
apk add——无缓存openssh;
git-v;
'''
}
}
}
}
这是詹金斯的输出:
+码头工人检查-f。阿尔卑斯山:3.12.0
警告:加载配置文件时出错:/root/.docker/config.json:stat/root/.docker/config.json:权限被拒绝
.
[管道]带DockerContainer
詹金斯似乎不是在集装箱里跑
$docker run-t-d-u 1001:0-w“/opt/bitnami/jenkins/jenkins_home/workspace/Deploy Glosfy Frontend”-v“/opt/bitnami/jenkins/jenkins_home/workspace/Deploy Glosfy Frontend:rw,z”-v“/opt/bitnami/jenkins/jenkins_home/workspace/Deploy GlosfyFrontend@tmp:/opt/bitnami/jenkins/jenkins_home/workspace/Deploy GlosfyFrontend@tmp:rw,z"*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************-e*********-e*********-e*********-e*********-e*********-e*********-e*********-e*********-e*********-e*********-e*********-e******-e******-e***-e******-e******-e***-阿尔卑斯山:3.12.0猫
$docker top 166c9ace17a4eb6aef0af0bbc04902ee4a358212be7f029550fb39a921e305aa-工程指令pid,通信
[管道]{
[管道]上海
+apk更新
错误:无法锁定数据库:权限被拒绝
错误:无法打开apk数据库:权限被拒绝
[管道]}
$docker stop——时间=1 166c9ace17a4eb6aef0af0bbc04902ee4a358212be7f029550fb39a921e305aa
$docker rm-f 166c9ace17a4eb6aef0af0bbc04902ee4a358212be7f029550fb39a921e305aa
[管道]//withDockerContainer
[管道]}
[Pipeline]//withEnv
[管道]}
[管道]//节点
[管道]}
[管道]//阶段
[管道]管道末端
错误:脚本返回退出代码99
完成:失败
有人能帮我解决这个问题吗?请修改Jenkins管道中的docker标记,如下所示:
docker {
image 'alpine:3.12.0'
args '-u root:root'
}
我认为问题在于Jenkins正在使用非root用户运行容器,因此出现了
权限被拒绝
错误
尝试这样更改管道:
agent {
docker {
image 'alpine:3.12.0'
args '-u root'
}
}
请参阅。Jenkins在VPS中独立运行,而不是在容器中运行。只是代理是docker容器。卷权限仍然重要吗?尝试从Jenkins Pipeline:docker{image'alpine:3.12.0'args'-u root:root'}将此添加到docker标记中。添加args以将用户更改为root非常有用,谢谢。我不知道我们可以像这样在管道中传递ARG。再次感谢。如果你更新评论中的细节,我可以接受答案。