GitHub Actions:获取在Docker容器中运行的所有作业命令

3
对于GitHub Actions,我想在Docker容器中运行作业的所有命令,但是无法使其正常工作。以下是我的操作的代码:
name: PR Checks

on: [push]

jobs:
  my_checks:
    container: 
      image: docker://alpine:latest
    runs-on: ubuntu-18.04
    steps:
      - run: uname -a
      - run: cat /proc/version

输出结果表明这些命令正在运行在Ubuntu主机上,而不是Alpine Linux。以下是表明这一点的输出:

enter image description here

我该如何在容器镜像内运行这些命令?
(顺带一提,我看到了this question,但是答案不起作用)

1
由于 Docker 容器共享主机内核,像 uname 这样打印内核级别细节的命令并不能说明您是否正在容器内运行。您可以尝试运行 Ubuntu 系统有但 Alpine 镜像没有的命令(如 bash)来证明这一点。 - David Maze
1
它们已经在容器内运行。此外,Ubuntu使用apt-get来管理软件包,而Alpine Linux使用apk。一个简单的测试是运行apk update,如果成功,则肯定在容器中运行。另外,如果指定了container,则无需指定runs-on选项,这也是另一种检查方式。 - smac89
感谢 @DavidMaze 和 @smac89!你们的评论帮了大忙——容器中的事情正在运行。我只想指出,即使有 containerruns-on 也是必需的。如果没有它,GitHub 将会将其标记为无效的工作流文件。 - jeffmaher
嗨,我正在尝试做同样的事情。但对我来说似乎在容器中无法运行。我正在运行 Django 测试用例。添加了容器和服务。有什么建议吗? - Manoj Jadhav
1个回答

1

(请查看问题的评论。答案在其中。问题中的代码示例确实在容器中运行命令。感谢@DavidMaze和@smac89!)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接