繁体   English   中英

如何在 Jenkins 中使用 shell 命令启动 docker 容器

[英]How to start docker containers using shell commands in Jenkins

我正在尝试使用 Jenkins shell 命令启动两个容器(每个容器都有不同的图像)。 我尝试在 Jenkins 中安装 docker 扩展和/或在全局配置工具中设置 docker。 我也在管道中做这一切。 执行docker run...我收到Docker: not found error在 Jenkins 控制台输出中。

我也很难在互联网上找到准确描述我希望完成的任务的指南。 如果它有任何重要性,我正在尝试启动一个 Selenium Grid 和一个 Selenium Chrome 节点,然后使用 maven(已配置并正常工作)在该节点上发送一个测试套件。

如果您有任何与我希望完成的事情类似的事情的经验,请分享您的想法,了解这种情况的最佳方法是什么。

干杯。

那是因为您可能在管道中创建的 docker 映像也不能在管道环境中运行(成为容器),因为该环境不是为托管应用程序而设计的。

您需要为您的 docker 映像(例如 Azure 或 GCP)找到托管服务提供商。 设置托管部分后,您需要向管道添加一个步骤,以将图像上传/推送到该提供商的 docker 注册表或免费的公共 Docker Hub。 然后,最后,在您的管道中添加一个步骤,向您的主机发送命令,从您选择的任何 docker 注册表下载图像,并将图像启动到容器中(下载和启动的最后一部分由docker run覆盖)。 只有在那时,您才有了一个正在运行的应用程序。

祝你好运。

有点相关(也许它会帮助你理解其中一些事情是如何工作的):

命令docker build类似于生成安装程序包(例如 MSI)的过程。

Docker 镜像相当于一个安装包(例如 MSI)。

命令docker run类似于以安装应用程序为目标运行安装程序包。 因此,使用相同的类比,运行 MSI 会安装应用程序。

容器类似于已安装的应用程序。 就像应用程序一样,docker 容器可以运行或处于停止状态。 这取决于环境,我在上面将其称为“托管”。

就像您可以在一台机器上构建 MSI 包并在其他机器上运行它一样,您可以在一台机器上构建 docker 镜像(在您的情况下是管道主机),但您需要将它们托管在支持它的环境中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM