You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GitHub Actions中使用docker://时如何捕获Docker容器的STDOUT

解决GitHub Action中uses: docker://捕获STDOUT的问题

方法:将容器输出写入工作目录文件,再读取用于Summary

由于uses: docker://模式下,Runner会自动清理容器,无法通过docker logs访问输出,你可以通过将容器命令的STDOUT重定向到工作目录的文件中,后续步骤读取该文件内容即可写入GitHub Summary。

步骤1:修改uses: docker://步骤的args,将输出写入文件

给容器的命令添加重定向,把输出写入工作目录的文件(比如version-output.txt):

runs:
  using: composite
steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Run docker (student image)
      uses: docker://<image-from-registry>
      with:
        args: >
          version > /github/workspace/version-output.txt

步骤2:读取文件内容并写入GitHub Summary

添加一个run步骤,读取文件内容,然后写入$GITHUB_STEP_SUMMARY文件(GitHub Summary的标准写入方式):

- name: Write to GitHub Summary
      run: |
        echo "### 容器输出结果" >> $GITHUB_STEP_SUMMARY
        echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
        cat version-output.txt >> $GITHUB_STEP_SUMMARY
        echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
      shell: bash

补充说明

  • /github/workspace是GitHub Runner默认挂载到容器的工作目录,容器内写入该路径的文件会保留在Action的工作目录中,后续步骤可以直接访问。
  • 如果需要同时保留日志输出和文件写入,可以用tee命令替代重定向:version | tee /github/workspace/version-output.txt,这样STDOUT会同时输出到日志和文件中。

内容的提问来源于stack exchange,提问作者Garry O Connor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:46:32