Windows 上的 Jenkins 与 Docker - 无法运行程序“nohup”

2024-04-23

我正在使用Jenkins Azure VM 代理插件 https://plugins.jenkins.io/azure-vm-agents与 Linux Master 一起在 Windows 代理上启动作业。

我已经完成了所有配置步骤,一切正常,直到我尝试在代理上使用 Docker。

我的管道脚本:

pipeline {
    agent {
        docker {
            image 'myurl.io/myimage:latest'
            registryUrl 'https://myurl.io/'
            registryCredentialsId '123456789abcdefg'
        }
    }

运行以下命令时,管道似乎无法启动:

docker pull myurl.io/myimage:latest

报告的错误归结为:

Caused: java.io.IOException: Cannot run program "nohup" (in directory "C:\Jenkins\workspace\Test Pipeline Docker"): CreateProcess error=2, The system cannot find the file specified

一些注意事项:

  • I have ticked the box to install git on the image: enter image description here

  • Git 工具似乎已成功安装在代理虚拟机上

  • 这个问题 https://stackoverflow.com/questions/45140614/jenkins-pipeline-sh-fail-with-cannot-run-program-nohup-on-windows似乎相关,但不是完全相同

    • 我没有运行sh直接命令,它是由插件运行的。
    • 我认为我无权设置PATH在这个阶段
  • JIRA 上的这个问题https://issues.jenkins-ci.org/browse/JENKINS-36776 https://issues.jenkins-ci.org/browse/JENKINS-36776相关,但它似乎没有得到修复,并且建议的解决方法似乎不适用于我的情况

我的问题

有没有办法让我的管道脚本正常工作?也许我可以在代理启动后但在启动之前以某种方式在代理上执行一些额外的命令docker pull命令 - 将所需的目录添加到PATH?

或者还有其他解决方法吗?


我认为您已经找到的问题是正确的:Jenkins pipeline sh 在 Windows 上失败并显示“无法运行程序 nohup” https://stackoverflow.com/questions/45140614/jenkins-pipeline-sh-fail-with-cannot-run-program-nohup-on-windows

但是,根据 docker-pipeline 插件的 wiki 页面,不支持在 Windows Worker 上运行 docker(虽然有点隐藏......):

对于具有 macOS、Windows 或其他代理且无法运行 Docker 守护进程的 Jenkins 环境,此默认设置可能会出现问题。 [https://www.jenkins.io/doc/book/pipeline/docker/#specifying-a-docker-label]

据我所知,有几次尝试添加该功能,但似乎还没有添加:https://github.com/jenkinsci/docker-workflow-plugin/pull/148 https://github.com/jenkinsci/docker-workflow-plugin/pull/148

在最后一个链接中还指出,修复 sh/nohup 问题并不是您唯一的问题,例如 docker 插件将尝试运行id来获取用户。

尽管如此,你could尝试通过编辑管道声明中的路径来使 Linux 命令可用:https://stackoverflow.com/a/45101214/12338776 https://stackoverflow.com/a/45101214/12338776

编辑: 刚看到这个问题已经3年了……好吧。但由于到目前为止还没有答案,而且很多人似乎仍然到达这里,所以它仍然可能对某人有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 Jenkins 与 Docker - 无法运行程序“nohup” 的相关文章

  • 是否可以对不同的服务使用不同的 .env?

    我遇到一种情况 最好有多个 env 文件 每个 env 文件对应 docker compose yml 中的每个服务 有什么方法可以指定要使用的不同文件名吗 这可以在个人服务层面上做到吗 我尝试使用env file不幸的是 这设置了在 Do
  • Azure 角色配置管理

    当您别无选择只能在 web config 或 app config 中保存配置设置时 我不明白 Windows Azure 如何让您改变应用程序的配置 例如 项目经常会使用大量使用 web config 的第三方库 web config 的
  • PhpStorm Docker PHPUnit 数据库

    I setup https blog jetbrains com phpstorm 2016 11 docker remote interpreters PhpStorm PHP PHPUnit 与 Docker 我在 PhpStorm 数
  • 如何使用 GetBobContent 获取多个文件并将其作为附件添加到 Azure 逻辑应用程序中的电子邮件?

    您好 我正在 Azure 逻辑应用程序中工作 我正在尝试从 azure data Lake gen v2 获取多个文件并将这些多个文件附加到电子邮件中 作为第一步 我添加了 http 请求 并提供了所需的信息以及文件路径 对于一个文件来说它
  • 使用 Composer 安装 PHPUNIT

    我有一个关于 Symfony 2 的项目 我想在 Windows 7 上使用 PHPUNIT On githut phpunit is Composer Simply add a dependency on phpunit phpunit
  • Service Fabric:服务之间的调用有延迟?

    我们正在开发一个由多个不同服务组成的服务结构应用程序 我们的应用程序工作方式的一个关键部分是这些服务需要大量相互调用 直到最近我们增加了应用程序的负载并发现它的速度大大减慢时 我们才遇到任何问题 经过大量调查和对各种事情进行计时后 我们发现
  • 在多分支管道中授予复制 artIfact 权限

    我有以下设置 通过配置的 Jenkins 多分支管道作业Jenkinsfile 成功签出和构建后 工件将被存档 并触发下游作业来部署生成的工件 为了让第二个工作能够通过 class CopyArtifact 步骤 它需要复制权限 所以问题是
  • Maven 不能在 jenkins 上运行(但可以通过 eclipse 和命令行运行)

    我有一些 CI 测试 全部在 Maven 中进行 当我在本地 Windows 10 的 Eclipse 中运行它们以及通过 ec2 Linux 服务器中的命令行运行它们时 构建成功 仅当我从 Jenkins 构建相同的项目时 我会收到以下错
  • 使用自签名证书将本地 Docker 镜像推送到私有存储库

    我正在尝试推送图像 比如说foo bar 从我的本地 Docker 注册表到在 OpenShift 3 11 上运行的注册表 实际上迷你换档 https github com minishift minishiftv1 33 0 ba294
  • 有适用于 Mac 的 Azure 存储查看器吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望能够从我的 MacBook 查看我的 Azure 表存储帐户 表 数据等 我还没有看到任何应用程序
  • AZURE:workerrole 中的异步 Run()

    我有一个异步任务 async Task UploadFiles 我想在 azure 工作者角色的 Run 方法中调用 UploadFiles 上的 等待 但 await 仅适用于声明为异步的方法 那么我可以使 Run 方法异步 如下所示 p
  • 捕获由纯 C++ dll 中的 MFC 应用程序生成的 Windows 消息

    首先 这可能吗 我有一个与某些硬件接口的第三方 dll 它是用MFC编写的 我 从 dll 供应商处 收到了一个示例 Visual Studio 2010 解决方案 该解决方案只有一个项目 调用相关第三方 dll 的 MFC 应用程序 ex
  • Azure Webjob 与云服务

    WebJob 和云服务有什么区别 我试图对两者进行概述 根据定义 它们似乎能够实现相同的目标 也许云服务有更多功能 云服务 Web Worker Role 将为您提供完整的虚拟机 VM 由于您想将 WebJobs 与云服务进行比较 我假设您
  • SQL CE 天蓝色连接

    我正在使用 azure 发布 asp net 应用程序 当我在本地发布时 它工作正常 但在 Azure 上 与数据库相关的所有内容都没有显示 并收到 由于发生内部服务器错误 无法显示页面 想知道我的连接字符串是否有问题 http webly
  • JFrog Artifactory 将什么令牌端点用于其 Docker 注册表?

    我正在尝试编写基本上可以执行以下操作的代码docker inspect发布到私人 JFrog Artifactory 的图像 而无需自己实际提取图像 我一直在使用一个名为在不拉取的情况下检查 Docker 镜像 https ops tips
  • 无论如何,您是否可以检查 Azure CLI 在后台执行哪些 API 调用?

    我正在使用适用于 Azure 的 Python SDK 但我可以看到文档缺乏正确的信息和示例 我知道 Azure CLI 是在 Azure 的 Python SDK 之上构建的 因此我想知道是否有任何方法可以知道在执行以下操作时正在调用什么
  • 服务无法启动虚拟机“DockerDesktopVM”,因为 Hyper-V 组件之一未运行

    我有 Window Server 2016 2019 虚拟机 Openstack 至此Hyper V安装成功 但无法启动 MobyLinuxVM ExposeVirtualizationExtensions 已通过 PowerShell 在
  • 如何安装适用于 Windows C++ 的最新版本 OpenGL?

    我正在使用 Visual Studio 2010 运行 Windows 7 包含的 OpenGL 版本 include 是版本 1 1 我希望使用合理的当前版本 某种版本 3 或 4 我需要做什么才能达到该状态 OpenGL SDK 页面位
  • 在azure应用程序服务中使用docker-compose

    我的平均堆栈代码在 docker compose 配置中工作 如果我跑docker compose up在我的电脑上 然后我可以成功登录我的应用程序localhost如果转到应用程序服务并单击 docker compose 预览选项并上传我
  • 您可以使用 Jenkins Pipeline 解析 TAP 格式吗?

    我正在尝试解析 BATS 脚本的输出 https github com gaia adm docker bench test https github com gaia adm docker bench test 输出为 TAP 格式 我稍

随机推荐

  • 复制 Ctrl-C 的快捷方式在 Android Studio 中不起作用

    我可以从其他程序复制文本并将其粘贴到 Android Studio 我可以右键单击并复制选定的文本 我可以使用快捷方式剪切文本并粘贴它 但是 在使用快捷键 Ctrl C 复制文本时 我经常无法复制 这是一个非常烦人的问题 这里有人知道如何解
  • 如何配置 apache 查看隐藏(`.`)文件?

    如何在 apache 中显示目录列表 隐藏文件 我都尝试过
  • 使用 Rack::SSLEnforcer 时从 Devise 确认链接中删除 HTTPS

    我在 Rails 应用程序中使用 Devise 和 Rack SSLEnforcer 当用户收到确认电子邮件时 它看起来像 http mysite com 443 users confirmation confirmation token
  • 单击开放图层版本 5 标记上的特征

    我正在使用开放层库版本 5 我需要标记上的 onClick 事件来执行一些业务逻辑 任何人都可以帮我解决这个问题 谢谢 我已经尝试了所有代码和片段 我正在使用这个库来响应js import Feature from ol Feature i
  • 通过css替换图片

    我正在 Stylish 一个 Firefox 插件 中编写代码来更改显示的图像 image 属性没有 div 标签 所以我必须使用它 img src s dschjungelplanet 因此 这将替换页面中任何位置的 img src 中的
  • 使用多个提供程序的客户端应用程序应使用什么设计/模式?

    这是一个与设计相关的问题 假设我们有一个名为 ClientAPI 的公共 API 其中包含一些 Web 方法 例如 CreateAccount GetAccount 根据客户的不同 我们使用许多不同的提供商来满足这些请求 假设我们有 Pro
  • 如何在Python中在后台运行长时间运行的作业

    我有一个运行长时间运行的作业 大约几个小时 的网络服务 我正在使用 Flask Gunicorn 和 nginx 来开发它 我想做的是让需要很长时间才能完成的路线 调用创建线程的函数 然后 该函数将向路由返回一个 guid 并且路由将返回一
  • C# FileSystemWatcher 和 FTP

    我通过文件系统观察器监视在 ftp 上删除的文件 然后移动到另一个目录 现在我触发文件系统观察程序的创建事件的复制 但显然在 ftp 的情况下 创建只是一个存根文件 数据会进入并在上传时填充文件直至完成 任何人对此都有一个优雅的解决方案 或
  • Python Mogo ImportError:无法导入名称连接

    不明白为什么这不起作用 mogo 0 2 4 File Users Sam Envs AdiosScraper lib python2 7 site packages mogo connection py line 3 in
  • 将单词的第一个字母大写,同时删除空格(Haskell)

    我刚刚开始使用 Haskell 这就像我正在写的第三件事 所以 自然地 我发现自己有点困惑 我正在尝试编写一些代码 该代码将获取一个字符串 删除空格 并将该字符串的每个字母大写 例如 如果我输入 这是一个测试 我想返回类似 thisIsAT
  • HierarchyID 如何从子级获取所有父级

    我对菜单的层次结构 ID 和用户权限有疑问 例如 我只想为用户提供 4 级的权限 并且我的查询应自动从 4 级子级中选择所有父级 这个怎么做 你明白我的问题吗 我只想要孩子的所有父母 祖先 问候曼努埃尔 我最近一直在使用 Hierarchy
  • 如何在 WPF 中折叠星形大小的网格列?

    通过设置使三列具有相同的宽度Width to Auto
  • 如何防止键盘隐藏我的EditText?

    我在顶部有一个relativeLayout 然后在下面的中心有一个ListView 最后在底部我有另一个relativeLayout 里面有一个EditText和一个Button 我希望当我单击 EditText 并出现 IME 虚拟键盘
  • 连接到 ACCESS 2007 (ODBC) 时如何在 PHP 上设置 UTF8

    我在 Access 文件中有泰文 日文 韩文字符 3 个字段 我在 PHP 中创建了一个脚本来连接到该文件 但显示的字符显示 和 设置什么才能显示正常字符 这是我的脚本
  • 使用 Unicode 字符打印 Pandas 列

    我有一个 pandas 数据框 其中有一列包含 unicode 编码名称 import pandas as pd no unicode pd Series Steve Jason Jake yes unicode pd Series tea
  • 在 Python 中将视频源从 Javascript 传递到 OpenCV

    我正在尝试创建一个网络应用程序来检测实时视频源中的面孔 我已经用 Javascript 编写了网络摄像头源代码 因为我想稍后托管该应用程序 使用 Javascript 获取 feed 的代码 var video document query
  • 选择公平的团队——并用数学来证明这一点

    应用 类似于选择操场团队 我必须将 n 个按顺序排列的元素的集合分成 n 2 的两队 团队必须尽可能 均匀 如上所述 从游乐场团队的角度考虑 偶数 排名表明相对 技能 或价值水平 元素 1 值 1 个 点 元素 2 值 2 个 点 等等 没
  • 模块元数据版本不匹配错误

    我在尝试构建我的角度项目时遇到此错误 模块元数据版本不匹配错误 C Users Admin ifish web node modules angular2 cool storage index d ts 找到版本 4 预期版本 3 解析符号
  • 从 WebView 从我自己的网页获取 html 元素?

    我有一个网络视图 显示来自我自己的服务器的页面 是否可以添加一个 javascript 方法 允许我的 Android 应用程序从 web 视图中读出页面元素 就像是 mypage html p some data p my android
  • Windows 上的 Jenkins 与 Docker - 无法运行程序“nohup”

    我正在使用Jenkins Azure VM 代理插件 https plugins jenkins io azure vm agents与 Linux Master 一起在 Windows 代理上启动作业 我已经完成了所有配置步骤 一切正常