注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
概述
Use jobs.<job_id>.container
to create a container to run any steps in a job that don't already specify a container. If you have steps that use both script and container actions, the container actions will run as sibling containers on the same network with the same volume mounts.
If you do not set a container
, all steps will run directly on the host specified by runs-on
unless a step refers to an action configured to run in a container.
Note: The default shell for run
steps inside a container is sh
instead of bash
. This can be overridden with jobs.<job_id>.defaults.run
or jobs.<job_id>.steps[*].shell
.
Example: Running a job within a container
name: CI
on:
push:
branches: [ main ]
jobs:
container-test-job:
runs-on: ubuntu-latest
container:
image: node:14.16
env:
NODE_ENV: development
ports:
- 80
volumes:
- my_docker_volume:/volume_mount
options: --cpus 1
steps:
- name: Check for dockerenv file
run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv)
When you only specify a container image, you can omit the image
keyword.
jobs:
container-test-job:
runs-on: ubuntu-latest
container: node:14.16
定义容器� 像
使用 jobs.<job_id>.container.image
定义要用作运行操作的容器的 Docker � 像。 值可以是 Docker Hub � 像名称或注册表名称。
定义容器注册表的凭据
如果� 像的容器注册表需要身份验证才能拉取� 像,可以使用 jobs.<job_id>.container.credentials
设置 username
和 password
的 map
。 凭据是� 将提供给 docker login
命令的相同值。
示例:定义容器注册表的凭据
container:
image: ghcr.io/owner/image
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
将环境变量与容器一起使用
使用 jobs.<job_id>.container.env
以在容器中设置环境变量的 map
。
公开容器上的网络端口
使用 jobs.<job_id>.container.ports
设置要在容器上显示的 array
个端口。
在容器中装载卷
使用 jobs.<job_id>.container.volumes
设置容器要使用的卷 array
。 您可以使用卷分享作业中服务或其他步骤之间的数据。 可以指定命名的 Docker 卷、匿名的 Docker 卷或主机上的绑定挂载。
要指定卷,需指定来源和目� �路径:
<source>:<destinationPath>
.
<source>
是主机上的卷名称或绝对路径,<destinationPath>
是容器中的绝对路径。
示例:在容器中装载卷
volumes:
- my_docker_volume:/volume_mount
- /data/my_data
- /source/directory:/destination/directory
设置容器资源选项
使用 jobs.<job_id>.container.options
配置其他 Docker 容器资源选项。 有关选项列表,请参阅“docker create
选项”。
警告: 不支持 --network
选项。