首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Jenkinsfile shell运行docker run命令,如果该命令包含"-"?

从Jenkinsfile shell运行docker run命令,如果该命令包含"-",可以通过在docker run命令之前加上一个双减号(--)来解决。双减号在shell命令中表示选项的结束,这样可以确保任何以"-"开头的参数都不会被解释为选项。

下面是一个示例的Jenkinsfile代码:

代码语言:txt
复制
pipeline {
    agent any
    
    stages {
        stage('Docker') {
            steps {
                sh 'docker run -- -<your arguments here>'
            }
        }
    }
}

在上面的代码中,通过在docker run命令之后的双减号后面添加你的命令行参数,可以确保这些参数被正确传递给docker命令。

注意:在Jenkinsfile中使用shell脚本执行docker命令时,需要确保Jenkins主机上已经安装了docker,并且Jenkins用户具有执行docker命令的权限。此外,为了保证安全性,还应该避免在docker命令中包含敏感信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 YAML 文件配置 Jenkins 流水线

,使我们的项目启动过程变慢 * 更改每个作业运行命令也不是一件简单的任务,并且有权限更改的人并不多。...工作在项目上的所有人都应该能修改它,如果他们希望执行 `npm install` 或 `yarn install` ### 安装Jenkins和Docker 安装 Jenkins 非常简单,直接官方教程选择一种方式安装...这样的构建逻辑非常容易被破坏,如果你不熟悉 Groovy。如果你对 Jenkins 流水线是如何工作的一无所知,就更容易了。这样,修改或增加一个新的 Docker 镜像就变得不简单,也容易导致混淆。...由于我们有不同语言的项目,我们使用 Docker 来构建测试环境。WoloxCI 假设有一个 Dockerfile 要构建,并将在容器内运行所有指定的命令。...Dockerfile 用于构建镜像,所有的命令运行镜像的容器中。 #### Services 部分 这部分定义了哪些服务被暴露到容器中。

4.8K40

Jenkins实战

本节需要对jenkinsfile有点了解,对dockerfile有点了解,对shell有点了解,对docker有点了解 环境准备 新建-构建一个Maven项目 需要提一下,现在新安装的没有这个选项,需要在插件里安装一下...和 (两个单引号) 可以在子shell中执行命令,但是这儿$()不支持 idea没有jenkinsfile的语法提示,很容易出错,这个很难受 步骤一:拉取项目 在【pullCode】步骤中 checkout...sudo docker push repoistory/qiao_namespace/${ _NAME}:${VERSION_ID} 步骤四:【run】 应用服务器拉取项目并且运行, 这一步要选择节点...rmi -f ${old_ _id} fi 运行容器 sudo docker run --name "${PROJECT_NAME}_${VERSION_ID}" -p 9001:8081 -d ${...中build dockerfile时传递过来的 ARG jar_name={jar_name:-sample-teszt-0.0.1-SNAPSHOT.jar} RUN 用于容器内部执行命令 RUN mkdir

1K00
  • 如何在Ubuntu上使用Jenkins自动构建

    运行流程的整套说明Jenkinsfile位于源存储库的根目录中。单个文件告诉服务器该做什么,何时做以及如何执行这些任务。...一些常见的步骤是: 运行脚本或代码命令。 编译代码。 运行测试。 源控件中推或拉。 转移档案。 创建Docker镜像,dockerize应用程序,拉取图像。...建立阶段 你会注意到关于parallel代码块的第一件事是它不言自明 - 它会并行运行子阶段。这对于使用之前使用的相同shell命令构建两个Docker镜像非常有用。...另一方面,Quality Tests阶段将trunk您的应用程序版本发布到Docker Hub。它首先发出Docker登录命令(使用预定义的凭据),然后更改图像标记并推送它。...junit语句允许Jenkins使用reports.xml您的Mocha图像生成的文件,archiveArtifacts命令将报告和应用程序文件保存到持久位置。

    7.9K10

    DevOps编程操练:用Jenkins流水线建立代码质量预警机制

    解决痛点 不知如何docker搭建Jenkins操练环境 不知如何开始为Java代码编写自动化单元测试 不知如何将单元测试运行在Jenkins流水线上 不知如何将繁琐的手工Jenkins流水线配置,简化为编写一个...Jenkinsfile脚本,并进行版本控制 当流水线出现故障后,不知如何revert导致故障的代码提交,来解决故障 使用docker搭建Jenkins操练环境 当然也可以不用docker,直接在本机安装...所以本操练使用docker来搭建操练环境 本操练是“CI搭建兽”到“流水线即代码”的升级版,除了使用docker运行Jenkins之外,还将 Jenkinsfile的写法,原来的脚本式(以 node...说明Jenkins确实读取了Jenkinsfile ? 观察运行结果中包含了上面添加的那句 `hello from scm` 触发流水线 现在Jenkins能从代码库中读取Jenkinsfile了。...但如果想让Jenkins定时轮询代码库,以便做到频繁小批地构建代码,从而尽早频繁小批地定位代码质量问题,更容易地修复问题,这如何用脚本实现呢?

    2.7K31

    使用 Jenkins 构建 CICD 之多分支流水线指北

    拉取镜像 docker pull jenkinsci/blueocean 运行 Jenkins docker run -idt —name kmywjenkins -p 9090:8080 -p 60000...var/jenkins_home Jenkins容器在工作的时候,如果要执行Docker命令(例如 docker ps、docker run等),需要有个途径能连接到宿主机的docker服务,此参数就是用来建立容器和宿主机...访问 Jenkins Docker 容器 有时候需要进入 Jenkins 容器执行一些命令,可以通过 docker exec 命令访问,例如:docker exec -it [containerid]...bash 若要手动重启 Jenkins,可以执行以下命令docker restart [containerid] Jenkins 基本配置 通过以上步骤,如果正常走到这里,可以通过以下地址访问http...我这里不知道为什么会卡在这个地方不动,所以我在 vscode 直接创建并编辑 JenkinsFile,这种方式更灵活,我更推荐这种方式,下面我会先简单介绍下 JeninsFile 的基础语法,仅包含本项目用到的

    2.1K30

    基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

    镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。...如果docker run时没有指定分离模式选项 -d ,那么Jenkins控制台日志则是通过运行Docker命令提示符窗口显示。  ...如果您在运行docker run 命令时指定了 --name 参数(如:--name jenkins-blueocean ),则只需使用以下 docker logs 命令docker logs jenkins-blueocean...镜像 (jenkinsci/blueocean)的一部分,镜像可以 Docker Hub 存储库获得。...Blue Ocean 将会扫描你本地仓库的分支来获得 Jenkinsfile 并为每个包含 Jenkinsfile 的分支运行流水线。

    1.7K20

    【Jenkins+Blue Ocean】docker部署Jenkins,编写Jenkinsfile创建流水线,一篇解决“贼带劲”

    Jenkins 可以通过本机系统包、Docker 安装,甚至可以由任何安装了 Java 运行时环境 (JRE) 的机器独立运行。...:/var/run/docker.sock \ jenkinsci/blueocean 参数解释: run: 启动运行一个容器; -u:root身份启动容器,具有root权限; dit:后台交互式方式运行容器...宿主机docker命令挂载给容器内使用(我们称为:docker in docker方式);        /var/run/docker.sock Docker守护程序监听通过基于Unix的套接字文件...,这里用于与Dcoker守护进程通信(不添加的话容器内docker命令,不能与守护进程通信); 使用docker-comopse部署 不会docker-compsoe点这里 在宿主机编写docker-compose.yaml...:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock 启动docker-compose对应的文件内容定义的services服务

    1.6K20

    3天学会Jenkins_6_管道或流水线教程之Jenkinsfile示例

    它是如何工作的? 在Jenkins管道中,每个任务或事件都至少对一个或多个事件具有某种依赖性。 ? 上图代表Jenkins的连续交付管道。它包含一组称为构建,部署,测试和发布的状态。...什么是JenkinsFile? 为什么使用Jenkins管道? Jenkins管道相关概念 如何创建Jenkins管道?...使用JenkinsFile,你可以编写运行Jenkins管道所需的步骤。 使用JenkinsFile的好处: 你可以为所有分支自动创建管道,并仅使用一个JenkinsFile执行拉取请求。...): 在 Linux、BSD 和 Mac OS(类 Unix) 系统中的 shell 命令, 对应于 Pipeline 中的一个 sh 步骤(step) // Jenkinsfile (Declarative...Jenkins的Pipeline及Jenkinsfile相关概念,并通过实例操作去了解如何结合具体项目实现Pipeline项目。

    3.9K20

    使用 Jenkins X、Kubernetes 和 Spring Boot 实现 CICD

    如果你还没有帐户,请注册免费试用。转到控制台(右上角有一个链接)并激活 Google Cloud shell。将以下命令复制并粘贴到 shell 中。...如果你不想使用个人帐户,可以选择要使用的组织。运行以下命令以查看应用程序的 CI/CD 流水线。...如果手动添加 URI,一切都应该有效。 在 Jenkins X 中运行 Protractor 测试 对我来说,弄清楚如何在 Jenkins X 中运行端到端测试是最难的。...我发现运行 npm e2e 与 frontend-maven-plugin 不兼容,因为它只调用其他 npm run 命令。...我特别喜欢 --headless,在本地运行时,因此浏览器不会弹出并妨碍我。如果我想实时看到这个过程,我可以快速删除选项。

    7.7K70

    Custom WAR Packager

    揭开面纱 Custom WAR Packager 是一个工具,可以作为命令行、Maven 插件或者 Docker 程序包来用。工具可以用户处获取配置,并根据用户请求进行打包。...尽管这些已经作为了 jep:207 和 jep:210 的一部分,你还是可以查看这个示例,了解 Docker 镜像是如何配置、连接到 Elasicsearch、然后启动外部的日志存储,而不需要改变日志的界面...一个 Docker Compose 文件对于运行整个集群是必要的。 Jenkinsfile Runner 打包 这可能是 Jenkinsfile Runner 最微妙的模式。...Jenkinsfile Runner 作为命令或一个 Docker 镜像来运行。虽然只推荐 Docker 的形式,但是 Custom WAR Packager 都能够生成。...使用 Jenkinsfile Runner ,你可以像下面的方式来运行流水线: docker run --rm -v $PWD/Jenkinsfile:/workspace/Jenkinsfile acmeorg

    82030

    Jenkins + Docker 助力 Serverless 应用构建与部署

    这里用到了 Jenkins 和 Docker。并且 Jenkins Pipeline 运行在容器中。 本文将介绍如何使用 Jenkins 和 Docker 构建并部署 Serverless 应用。...环境安装 需要安装的软件 Docker Jenkins 笔者用的 MacBook,已经事先安装好了 Docker,并且由于 DockerHub 下载镜像比较慢,为了加快镜像下载速度,设置了使用国内的...云厂商提供的解决方案 …… 笔者这里使用 Docker 运行 Jenkins,因为构建步骤也会运行Docker 中,需要将 docker.sock 和 docker 命令挂载到容器中,启动 jenkins...命令如下: docker run -d -p 8080:8080 --name jenkins -e TZ="Asia/Shanghai" -v jenkins_home:/var/jenkins_home...Jenkins 及插件,如何定制构建环境的 Docker 镜像,并展开分析了 Jenkins Pipeline 的核心配置文件:Jenkinsfile

    2K10

    使用 Jenkins X、Kubernetes 和 Spring Boot 实现 CICD

    如果你还没有帐户,请注册免费试用。转到控制台(右上角有一个链接)并激活 Google Cloud shell。将以下命令复制并粘贴到 shell 中。...如果你不想使用个人帐户,可以选择要使用的组织。运行以下命令以查看应用程序的 CI/CD 流水线。...你还需要更新 Jenkinsfile,以便它可以运行 holdings-api 目录中的任何 mvn 命令。也添加 -Pprod 配置文件。例如: ?...我发现运行 npm e2e 与 frontend-maven-plugin 不兼容,因为它只调用其他 npm run 命令。...然后向 Jenkinsfile 添加一个新的 Run e2e tests 阶段,阶段位于 “CI 构建”和“构建发布”阶段之间。如果有帮助,你可以看到最终的 Jenkins 文件。 ?

    4.3K10

    基于 Kubernetes 的 Spring Cloud 微服务 CICD 实践

    第二步:高级设置 1、点击 添加参数,如下添加 3 个 字符串参数,流水线的 Docker 命令中会使用参数。完成后点击确定。...右侧继续点击 添加嵌套步骤,选择 Shell,在弹窗中如下输入以下命令基于仓库中的 Dockerfile 构建 Docker 镜像,完成后点击确认保存: docker build -f ....在 添加凭证步骤中点击 添加嵌套步骤,右侧选择 Shell,在弹窗中如下输入以下命令登录 Docker Hub: echo "$DOCKER_PASSWORD" | docker login $REGISTRY...-u "$DOCKER_USERNAME" --password-stdin 同上,继续点击 添加嵌套步骤添加 Shell 输入一条命令推送 SNAPSHOT 镜像至 Docker Hub: docker...&& npm run build:docker 运行流水 手动构建的流水线在平台中需要手动运行,点击 运行,输入参数弹窗中可看到之前定义的三个字符串参数,此处暂无需修改,点击 确定,流水线将开始运行

    2.9K41

    JenkinsPipeline语法概要

    docker还可以接受一个args可能包含直接传递给docker run调用的参数的参数。...为了使用此选项,Jenkinsfile必须多分支Pipeline或PipelineSCM加载。通常这是Dockerfile源库的根源:agent { dockerfile true }。...条件 always 总是运行,无论Pipeline运行的完成状态如何 changed 只有当前Pipeline运行的状态与先前完成的Pipeline的状态不同时,才能运行 failure...when指令必须至少包含一个条件。如果when指令包含多个条件,则所有子条件必须为舞台执行返回true。这与子条件嵌套在一个allOf条件中相同。...sh 执行shell命令。 sh步骤支持的参数有: script:将要执行的shell脚本,通常在类UNIX系统上可以是多行脚本。

    5.1K10

    使用 Jenkins、Docker 构建部署 Serverless 应用

    这里用到了 Jenkins 和 Docker。并且 Jenkins Pipeline 运行在容器中。 本文将介绍如何使用 Jenkins 和 Docker 构建并部署 Serverless 应用。...环境安装 需要安装的软件 Docker Jenkins 笔者用的 MacBook,已经事先安装好了 Docker,并且由于 DockerHub 下载镜像比较慢,为了加快镜像下载速度,设置了使用国内的...云厂商提供的解决方案 …… 笔者这里使用 Docker 运行 Jenkins,因为构建步骤也会运行Docker 中,需要将 docker.sock 和 docker 命令挂载到容器中,启动 jenkins...命令如下: docker run -d -p 8080:8080 --name jenkins -e TZ="Asia/Shanghai" -v jenkins_home:/var/jenkins_home...总结 本文介绍了如何使用安装 Jenkins 及插件,如何定制构建环境的 Docker 镜像,并展开分析了 Jenkins Pipeline 的核心配置文件:Jenkinsfile

    2.1K30
    领券