在 Bamboo 中设置 Docker 构建步骤
Set up Docker Build Step in Bamboo
我目前对在 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 路径,我尝试了各种方法,其中 none 有效(也就是,以下错误对每个错误都保持不变):
/snap/docker
(手动搜索找到的第一个文件夹)
/usr/bin/docker
(推荐路径,虽然在检查 Ubuntu 服务器时我很快发现 [=77= 上的 /usr/bin
下不存在 docker
文件夹]服务器)
/var/snap/docker/common/var-lib-docker
(我在Ubuntu服务器上运行docker info
时Dockerreturns作为根目录的路径)
/var/snap/docker
(很好的衡量标准)
现在,对于 运行ner,我尝试了两种不同的方法。
首先,我尝试使用具有以下设置的 Docker 运行ner:
命令: 运行一个Docker容器
Docker 图片: 你好世界
此returns以下错误信息:
┊
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
┊
第二个只是 运行 一个 shell 运行ner 命令 docker run hello-world
,它返回了以下错误:
docker: not found
说到这里,我觉得自己没思路了。由于某种原因,所有内容都指向 Bamboo,但在服务器上找不到 Docker,尽管我可以清楚地确认它在那里。我尝试了各种不同的方法来告诉 Bamboo 在哪里可以找到 Docker,但是其中 none 有效。
很明显我做错了什么,但我不知道是什么。或者也许问题出在完全不同的方向上?无论如何,如果能就此问题分享任何见解,我将不胜感激。
好的,我找到了导致这种奇怪行为的原因。
问题是我使用 sudo snap install docker
安装 Docker,显然通过 snap 安装 docker 会导致 Bamboo 出现问题。
所以我使用这些简单的步骤让它工作:
- [服务器] 使用
sudo snap remove docker
卸载快照 Docker
- [服务器] 已使用
sudo apt install docker.io
重新安装 Docker
- [Bamboo] 将服务器功能中 Docker 的路径更改为
/usr/bin/docker
之后,hello-world 镜像构建成功,并将预期的输出打印到日志中。
我目前对在 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 路径,我尝试了各种方法,其中 none 有效(也就是,以下错误对每个错误都保持不变):
/snap/docker
(手动搜索找到的第一个文件夹)/usr/bin/docker
(推荐路径,虽然在检查 Ubuntu 服务器时我很快发现 [=77= 上的/usr/bin
下不存在docker
文件夹]服务器)/var/snap/docker/common/var-lib-docker
(我在Ubuntu服务器上运行docker info
时Dockerreturns作为根目录的路径)/var/snap/docker
(很好的衡量标准)
现在,对于 运行ner,我尝试了两种不同的方法。
首先,我尝试使用具有以下设置的 Docker 运行ner: 命令: 运行一个Docker容器 Docker 图片: 你好世界
此returns以下错误信息:
┊
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
┊
第二个只是 运行 一个 shell 运行ner 命令 docker run hello-world
,它返回了以下错误:
docker: not found
说到这里,我觉得自己没思路了。由于某种原因,所有内容都指向 Bamboo,但在服务器上找不到 Docker,尽管我可以清楚地确认它在那里。我尝试了各种不同的方法来告诉 Bamboo 在哪里可以找到 Docker,但是其中 none 有效。
很明显我做错了什么,但我不知道是什么。或者也许问题出在完全不同的方向上?无论如何,如果能就此问题分享任何见解,我将不胜感激。
好的,我找到了导致这种奇怪行为的原因。
问题是我使用 sudo snap install docker
安装 Docker,显然通过 snap 安装 docker 会导致 Bamboo 出现问题。
所以我使用这些简单的步骤让它工作:
- [服务器] 使用
sudo snap remove docker
卸载快照 Docker
- [服务器] 已使用
sudo apt install docker.io
重新安装 Docker
- [Bamboo] 将服务器功能中 Docker 的路径更改为
/usr/bin/docker
之后,hello-world 镜像构建成功,并将预期的输出打印到日志中。