当我创建GitHub Actions工作流文件时,示例YAML文件包含runs-on: ubuntu-latest
。 According to the docs,我只有几个版本的Ubuntu,Windows Server和macOS X之间可以选择。
我认为GitHub Actions在Docker中运行。如何选择我的Docker映像?
答案 0 :(得分:8)
作业(作为工作流程的一部分)在虚拟机中运行。您选择一种环境provided by them(例如ubuntu-latest
或windows-2019
)。
一项工作包含一个或多个步骤。使用 run ,一个步骤可能是一个简单的shell命令。但这也可能是动作,使用用途
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>
使用操作系统的外壳程序执行命令uses: actions/checkout@v1
从存储库actions
(https://github.com/actions/checkout)(主要版本1)中的用户/组织checkout
运行操作。uses: ./.github/actions/my-action
在此路径下运行您自己的存储库中定义的操作uses: docker://continuumio/anaconda3:2019.07
从Docker Hub(https://hub.docker.com/r/continuumio/anaconda3)运行来自用户/组织anaconda3
,版本continuumio
的{{1}}镜像请记住,need to select a linux distribution是您要使用Docker的环境。
还应注意,有一个2019.07
选项,可让您运行通常在要在容器内运行的主机上运行的任何步骤:https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer
答案 1 :(得分:4)
GitHub动作提供了一个虚拟机(如您所述,Ubuntu,Windows或macOS),并在其中运行您的工作流。您可以然后使用该虚拟机在容器内运行工作流程。
使用the container
specifier在容器内运行一个步骤。确保为容器指定runs-on
作为适当的主机环境(对于Linux容器,指定ubuntu-latest
,对于Windows容器,指定windows-latest
)。例如:
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