我有以下调用结构:
fab -Huser@host set_repository_commit_hash:123abc
。set_repository_commit_hash
运行git fetch
用pty = False
。ssh git@github.com git-upload-pack 'user/repository.git'
永远不会完成。我试过git fetch
在本地克隆中运行并成功,但运行ssh git@github.com git-upload-pack 'user/repository.git'
只返回以下内容并挂起:
00ab84249d3bb20930c185c08848c60b71f7b28990d6 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed agent=git/1.8.4
0041cb34b1c8ca75d478df38c794fc15c5f01cc6377e refs/heads/branch_name
004012577068adf47015001bfa0cff9386d6cdf497ce refs/heads/[...]
003f84249d3bb20930c185c08848c60b71f7b28990d6 refs/heads/master
[a couple more lines like the ones above, then:]
0000
Run Code Online (Sandbox Code Playgroud)
这是一个已知的 SSH/Git/Fabric/Jenkins 问题吗?
我做到strace
了,但我没有记录会话。我相信它被卡在了read
.
可能的相关链接:
具体来说,我正在尝试通过切换到“jenkins”用户来测试我的构建服务器上的某些内容:
sudo su - jenkins
No passwd entry for user 'jenkins'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Jenkins 在 Docker 容器中构建 C++ 项目。我在 Jenkins 中构建或在 Jenkins 之外的容器中构建都没有问题。
以下是我尝试过的。为清楚起见,我省略了卷映射。
情况1
以下命令在 shell 中成功运行构建。
docker run --rm --interactive=true --tty=true $IMAGE make
Run Code Online (Sandbox Code Playgroud)
但是,当在 Jenkins 中作为“执行 shell”步骤运行时,Docker 会返回以下错误。
cannot enable tty mode on non tty input
Run Code Online (Sandbox Code Playgroud)
案例二
以下命令与前一个命令类似,但禁用交互性。
docker run --rm $IMAGE make
Run Code Online (Sandbox Code Playgroud)
Jenkins 可以成功运行构建。但是,在中止构建时会出现严重的问题。构建会立即标记为中止,但容器会继续运行,直到构建完成。退出后容器也不会被移除。
在 shell 中运行时,命令会成功构建,但无法中断它。退出后容器也会被移除。
题
有谁知道如何在 Jenkins 的 Docker 容器中干净地运行构建并保留中止构建的能力?
使用任何 Jenkins 插件都不是一种选择,因为 Docker 调用在脚本内部并且无法轻松提取。
我需要禁用默认启用的 jenkins 中的 CSRF 保护。问题是在容器化之后,当我旋转一个里面有 jenkins 的新容器时,它会抛出“没有有效的面包屑”错误。
我目前正在使用此 cmd 打开 jenkins 应用程序。
/usr/bin/java -server -Djava.net.preferIPv4Stack=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=9090 --ajp13Port=-1
Run Code Online (Sandbox Code Playgroud) 我在詹金斯有一个有趣的行为。
Jenkins 的 shell 不使用我的系统语言环境。
Jenkinsjenkins
在我的系统上以用户身份运行。
jenkins
通过 SSH登录:locale
显示:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
等等...
env
显示LANG
和LANGUAGE
变量:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
id
显示用户ID:
uid=1008(詹金斯) gid=...
locale
显示:
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
等等...
env
并没有表现出LANG
与LANGUAGE
变数
id
显示用户 ID(如预期):
uid=1008(詹金斯) gid=...
/etc/profile
包含:
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
/etc/default/locale
包含:
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
启动脚本/etc/init.d/jenkins
应该导出系统的语言环境:
# 加载环境
if [ -r /etc/default/locale ]; 然后
。/etc/default/locale
export LANG LANGUAGE …
我有一台构建机器,它的用户abc
具有有限的 sudo 访问权限。当我查看源代码并运行我的构建脚本时,它工作正常。构建脚本包含的sudo
调用没有说“sudo: no tty present and no askpass program specified”。但是当我在添加为奴隶的构建机器上对 Jenkins 做同样的事情时,它显示“sudo:没有 tty 存在并且没有指定 askpass 程序”。
我找到了一种解决方案,说要Default requiretty
在文件中注释掉/etc/sudoers
。但我无权访问此文件。
我怎样才能克服这个问题?
我正在尝试在 Jenkins (1.638) 的 Execute Shell 上编写一个简单的 If 语句。我查看了类似的问题 ,但它仍然不起作用(请参阅下面的结果输出)。我尝试了 [[ 和 [ 以及相关的空格,看来 Jenkins 的处理方式与常规 bash 不同。我什至在 if 和 ; 的同一行上尝试了 then。任何的想法 ?
if [[ "${BRANCH_NAME}" == "master" ]] || [[ "${BRANCH_NAME}" == "master_dev" ]]
then
./runUnitTests.sh ${REPOSITORY_NAME} ${BASE_BUILD_CORE} ${BRANCH_NAME} ${BUILD_NUMBER} || echo "The npm may fail but the report exists"
fi
Run Code Online (Sandbox Code Playgroud)
詹金斯的结果是
我正在使用 Jenkins 在 Linux 上使用 Maven 自动构建应用程序。
我应该在哪里设置环境变量,例如$JAVA_HOME
和附加项目,$PATH
以便 Jenkins 可以使用它们?
我尝试了几个不同的地方,但都没有成功。我不确定詹金斯使用什么样的外壳,无论是登录/非登录、交互式还是非交互式。
我有一个用 Qt 编写的 GUI 应用程序,我想通过 ssh(或 Jenkins)运行测试。只有一个用户帐户,它允许在显示模式下运行它(我以前这样做时是ofc export $DISPLAY=:0
。在其他用户 jenkins 上,我在控制台中看到了一个错误:
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能允许该用户以图形模式运行应用程序?我使用 Ubuntu 14.04。
Jenkins 已停止构建,我可以从 df 中看到:/var 已达到最大值。在此之后,我可以看到罪魁祸首是 /var/lib/jenkins
52K alternatives
...
4.0K games
2.3G jenkins <--this one
4.0K logrotate.status
...
12M yum
2.4G total
Run Code Online (Sandbox Code Playgroud)
但是,当我进入 jenkins 目录查看哪个文件夹消耗了这 2.3GB 的大部分时,出现了一些奇怪的结果:
$ sudo du -csh *
16K config.xml
0 Connection Activity monitoring to slaves.log
0 Download metadata.log
0 Fingerprint cleanup.log
7.3M fingerprints
4.0K hudson.maven.MavenModuleSet.xml
4.0K hudson.model.UpdateCenter.xml
4.0K hudson.scm.CVSSCM.xml
4.0K hudson.scm.SubversionSCM.xml
4.0K hudson.tasks.Ant.xml
4.0K hudson.tasks.Mailer.xml
4.0K hudson.tasks.Maven.xml
4.0K hudson.tasks.Shell.xml
4.0K hudson.triggers.SCMTrigger.xml
4.0K identity.key.enc
4.0K jenkins.diagnostics.ooom.OutOfOrderBuildMonitor
4.0K jenkins.model.ArtifactManagerConfiguration.xml
4.0K jenkins.model.DownloadSettings.xml
4.0K jenkins.model.JenkinsLocationConfiguration.xml
4.0K jenkins.mvn.GlobalMavenConfig.xml
4.0K jenkins.security.QueueItemAuthenticatorConfiguration.xml …
Run Code Online (Sandbox Code Playgroud)