在Docker容器的Jenkins管道作业中使用git merge的问题

时间:2019-06-11 08:38:11

标签: git docker jenkins jenkins-pipeline

我正在执行Jenkins作业,该作业将一个分支合并到另一个分支,然后在创建的提交上运行构建。我收到错误消息:

+ git config --global user.email myemail@gmail.com
error: could not lock config file //.gitconfig: Permission denied
+ git config --global user.name 'Merge before testing'
error: could not lock config file //.gitconfig: Permission denied
+ git merge origin/branchToTest

准备合并时。

您会在错误消息中看到,在第一个斜杠之后没有文件夹,该文件夹应该是用户名,在我的情况下是/jenkins/.gitconfig

当我插入行whoami时,出现错误:whoami: cannot find name for user ID 1000

当我运行docker exec containerName whoami时,它返回jenkins

我确保创建图像时用户jenkins存在。这是dockerfile的一部分:

FROM jenkins/jenkins:lts
ENV TZ=Asia/Tokyo
USER jenkins
RUN <user stuff>
USER root
RUN <root stuff>
USER jenkins

这是我的Jenkinsfile的相关部分:

git checkout -B origin/$BASE_BRANCH
git config --global user.email "email@domain"
git config --global user.name "Merge before testing"
git merge origin/$SOURCE_BRANCH

此外,我非常确定合并失败,因为使用git rev-parse --verify HEAD检索的git哈希在git merge之前和之后都不会改变

最后,我想要的是能够使用git merge将$ SOURCE_BRANCH合并到$ BASE_BRANCH中,测试合并提交,然后还原合并提交。为此,不能使用描述性管道和插件,因为我想尽可能地将所有步骤都放在代码中。

0 个答案:

没有答案