【问题标题】:Set up Docker Build Step in Bamboo在 Bamboo 中设置 Docker 构建步骤
【发布时间】:2020-01-23 22:57:22
【问题描述】:

我目前对在 Atlassian Bamboo 中设置 docker 构建步骤感到绝望。

对于初学者,我只想创建一个运行 hello-world 映像的构建配置,作为融合的证明。到目前为止,我失败了。

我已尝试按照https://confluence.atlassian.com/bamboo0609/using-bamboo/jobs-and-tasks/configuring-tasks/configuring-the-docker-task-in-bamboo 上的步骤进行操作,但无济于事。

我的设置是这样的: 我们在 Ubuntu 服务器上安装了 Bamboo。我还在该服务器上安装了 Docker 并将 bamboo 用户添加到 docker 用户组并重新启动服务器以确保权限更改生效。此时,docker run hello-world 在我直接在服务器上运行时可以正常工作。我还可以确认这是 Bamboo 运行的服务器,因为每当我重新启动安装 Docker 的服务器时,Bamboo 都会脱机。

然后,我在服务器上添加了 docker 能力(代理是默认代理,所以它从服务器继承了这个能力)。作为 docker 路径,我尝试了各种方法,但都没有奏效(也就是说,以下错误对于每一个都保持不变):

  • /snap/docker(我在手动搜索中找到的第一个文件夹)
  • /usr/bin/docker(推荐路径,虽然在检查 Ubuntu 服务器时我很快发现在 Ubuntu derver 上的 /usr/bin 下不存在 docker 文件夹)
  • /var/snap/docker/common/var-lib-docker(当我在 Ubuntu 服务器上运行 docker info 时 Docker 作为其根目录返回的路径)
  • /var/snap/docker(为了更好的衡量标准)

现在,对于跑步者,我尝试了两种不同的方法。

首先,我尝试使用具有以下设置的 Docker 运行器: 命令: 运行 Docker 容器 Docker 镜像: hello-world

这将返回以下错误消息:

┊
Error occurred while running Task 'Hello World Docker Test(5)' of type com.atlassian.bamboo.plugins.bamboo-docker-plugin:task.docker.cli.com.atlassian.bamboo.task.TaskException: Failed to execute task
┊
Caused by: com.atlassian.bamboo.docker.DockerException: Error running Docker run command
┊
Caused by: com.atlassian.utils.process.ProcessException: Error executing /snap/docker run --volume /var/atlassian/application-data/bamboo/xml-data/build-dir/CAM-DOC-JOB1:/data --workdir /data --rm hello-world
┊

第二个只是为命令docker run hello-world运行shell runner,返回以下错误:

docker: not found

在这一点上,我觉得我没有想法。出于某种原因,一切都指向 Bamboo,尽管我可以清楚地确认它在那里,但在服务器上找不到 Docker。我尝试了各种不同的方法来告诉 Bamboo 在哪里可以找到 Docker,但都没有奏效。

很明显我做错了什么,但我不知道是什么。或者问题可能出在完全不同的方向上?无论如何,我将不胜感激就此事分享任何见解。

【问题讨论】:

  • 竹代理是不是别的机器?您是否尝试过检查那里是否安装了 docker?

标签: docker bamboo


【解决方案1】:

好的,我找到了导致这种奇怪行为的原因。

问题是我使用sudo snap install docker 安装 Docker,显然通过 snap 安装 docker 会导致 Bamboo 出现问题。

所以我使用这些简单的步骤让它工作:

  1. [服务器] 使用sudo snap remove docker 卸载 Snap Docker
  2. [服务器] 使用sudo apt install docker.io 重新安装了 Docker
  3. [Bamboo] 将Server Capabilities中Docker的路径改为/usr/bin/docker

之后,hello-world 镜像构建成功,并将预期的输出打印到日志中。

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2017-05-02
    • 2023-03-22
    相关资源
    最近更新 更多