将文件从 Docker 容器复制到 Github 存储库

问题描述

我的存储库中有一个 Dockerfile 和一个 tex 文件。我使用 Github Actions 构建一个图像(ubuntu 18.10,带有 PDFLaTeX 包)并运行一个容器,它获取 main.tex 并使用 PDFLaTeX 生成 main.pdf。到目前为止,一切似乎都正常,但问题是我无法将 pdf 从容器复制到存储库。我尝试使用 docker cp:

docker cp pdf-creator:/main.tex .

但它似乎不起作用,因为 pdf 没有出现在我的存储库中。你能想到其他方法解决这个问题吗?

解决方法

docker cp 命令将文件复制到本地文件系统。在 GitHub 操作的上下文中,这只是用于运行代码的任何虚拟环境:它与您的存储库无关。

向存储库添加内容的唯一方法是git add 文件、git commit 更改和git push 对存储库的更改(这当然需要为您的操作提供将更改推送到您的存储库所需的凭据,可能使用 GitHub Secret)。

但是,与其将文件添加到您的存储库中,不如查看对 Artifacts 的支持?这让您可以保存作为工作流程一部分生成的文件,并使其可供下载。

工作流程步骤如下所示:

      - name: Archive generated PDF file
        uses: actions/upload-artifact@v2
        with:
          name: main.pdf
          path: /main.pdf

有关详细信息,请参阅链接的文档。