当我创建 GitHub Actions 工作流文件时,示例 YAML 文件包含runs-on: ubuntu-latest
. 根据文档,我只有几个版本的 Ubuntu、Windows Server 和 macOS X 之间的选项。
我认为 GitHub Actions 在 Docker 内部运行。如何选择我的 Docker 镜像?
当我创建 GitHub Actions 工作流文件时,示例 YAML 文件包含runs-on: ubuntu-latest
. 根据文档,我只有几个版本的 Ubuntu、Windows Server 和 macOS X 之间的选项。
我认为 GitHub Actions 在 Docker 内部运行。如何选择我的 Docker 镜像?
GitHub 操作配置了一个虚拟机——正如你所提到的,Ubuntu、Windows 或 macOS——并在其中运行你的工作流程。然后,您可以使用该虚拟机在容器内运行工作流。
使用说明container
符在容器内运行步骤。请务必runs-on
为您的容器指定适当的主机环境(ubuntu-latest
对于 Linux 容器,windows-latest
对于 Windows 容器)。例如:
jobs:
vm:
runs-on: ubuntu-latest
steps:
- run: |
echo This job does not specify a container.
echo It runs directly on the virtual machine.
name: Run on VM
container:
runs-on: ubuntu-latest
container: node:10.16-jessie
steps:
- run: |
echo This job does specify a container.
echo It runs in the container instead of the VM.
name: Run in container
作业(作为工作流的一部分)在虚拟机内运行。您选择他们提供的环境之一(例如ubuntu-latest
或windows-2019
)。
一项工作由一个或多个步骤组成。一个步骤可能是一个简单的 shell 命令,使用run。但它也可能是一个动作,使用使用
name: CI
on: [push]
jobs:
myjob:
runs-on: ubuntu-18.04 # linux required if you want to use docker
steps:
# Those steps are executed directly on the VM
- run: ls /
- run: echo $HOME
- name: Add a file
run: touch $HOME/stuff.txt
# Those steps are actions, which may run inside a container
- uses: actions/checkout@v1
- uses: ./.github/actions/my-action
- uses: docker://continuumio/anaconda3:2019.07
run: <COMMAND>
使用 OS 的 shell 执行命令uses: actions/checkout@v1
actions
从存储库checkout
( https://github.com/actions/checkout ) 中的用户/组织运行操作,主要版本 1uses: ./.github/actions/my-action
运行在此路径下您自己的存储库中定义的操作uses: docker://continuumio/anaconda3:2019.07
从 Docker Hub ( https://hub.docker.com/r/continuumio/anaconda3 )运行anaconda3
来自用户/组织continuumio
、版本的映像2019.07
请记住,如果要使用 Docker,则需要选择 linux 发行版作为环境。
还应该注意的是,有一个container
选项允许您运行通常在主机上运行的任何步骤以在容器内运行:https ://help.github.com/en/articles/workflow-syntax-for -github-actions#jobsjob_idcontainer