使用 docker 运行一个竹脚本

Posted

技术标签:

【中文标题】使用 docker 运行一个竹脚本【英文标题】:Run a bamboo script with docker 【发布时间】:2019-06-27 13:22:57 【问题描述】:

在 Isolate 构建 Docker 容器中执行 Bamboo 脚本任务时出现以下错误:

simple  27-Jun-2019     Starting task 'XYZ' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script'
command 27-Jun-2019     Beginning to execute external process for build 'XYZ'\n ... running command line: \n/tmp/runInDocker3301468521768702357.sh /home/bamboo/bamboo-agent-home/temp/XYZ-8591248614821374698.sh\n ... in: /tmp\n
error   27-Jun-2019     flag provided but not defined: -e
error   27-Jun-2019     See 'docker exec --help'.
simple  27-Jun-2019     Failing task since return code of [/tmp/runInDocker3301468521768702357.sh /home/bamboo/bamboo-agent-home/temp/XYZ-8591248614821374698.sh] was 125 while expected 0
simple  27-Jun-2019     Finished task 'list buckets' with result: Failed

配置类似于此链接Docker Runner 如下所示:

Isolate build -> Docker container -> Docker image: `ubuntu:16.04`

脚本任务是:

Shell -> Inline

内容简单如下:

echo "Hallo AWS"
#!/bin/bash

Bamboo 版本是6.5.1

【问题讨论】:

你添加了-e 没有值吗? 你的脚本应该以#!/bin/bash开头 @LinSel 我可以在哪里添加没有值的 -e? 删除 #!/bin/bash 返回相同的错误 【参考方案1】:

面临相同/相似的问题。我开始我的 Bamboo 计划

Isolate build -> Docker container -> Docker image: centos 

我有一个返回一些数据的内联脚本任务。

whoami

ls -la

pwd

输出不是来自容器,而是来自代理。我希望路径是 /home/bamboo,因为这是我直接在 docker 中运行图像时开始的地方。

19-Mar-2020 15:07:41    bamboo
19-Mar-2020 15:07:41    total 0
19-Mar-2020 15:07:41    drwxr-xr-x 2 bamboo bamboo  6 Mar 19 19:07 .
19-Mar-2020 15:07:41    drwxr-xr-x 3 root   root   30 Mar 19 19:07 ..
19-Mar-2020 15:07:41    /home/bamboo/bamboo-agent-home/xml-data/build-dir/SANDY-JOB1

【讨论】:

对于我的解决方案,我最终在脚本任务中使用了“docker run...”。我们已转换所有计划,并且按预期工作。【参考方案2】:

如果您尝试在 Bamboo Docker Runner 映像上设置环境变量(隔离构建而不是使用代理环境),您有三个选项:

    修改您用作构建容器的基本映像以包含环境选项。这是通过使用 Dockerfile(下面的示例)然后将图像保存在 Bamboo 可以访问的存储库(例如 Docker Hub)中完成的: 来自微软/dotnet:sdk ENV foo=bar 入口点 ["dotnet", "myRuntime.dll"] 使用作业中的任务通过脚本设置所需的环境变量。 使用代理环境,并作为第一个任务运行 Docker 任务,并传入构建映像和适当的环境变量标志。

【讨论】:

我正在使用这里描述的 Isolate 构建:confluence.atlassian.com/bamboo/docker-runner-946020207.html 在哪里可以添加环境标志?

以上是关于使用 docker 运行一个竹脚本的主要内容,如果未能解决你的问题,请参考以下文章

使用 shell 脚本在 docker 容器中运行脚本

使用 docker 文件运行脚本文件 (.sh) 时权限被拒绝

Docker:如何知道 mongo 是不是在 Alpine/node 中使用 shell 脚本文件运行

如何为在 docker 容器内运行的 corda 节点运行迁移脚本?

竹原木输出顺序问题

无法在 docker [Errno 13] Permission denied 中使用解释器运行 python 脚本