[英]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.