注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
概要
jobs.<job_id>.container
を使用して、コンテナーを作成し、コンテナーをま� 指定していないジョブのステップを実行します。 スクリプトアクションとコンテナアクションの両方を使うステップがある� �合、コンテナアクションは同じボリュー� マウントを使用して、同じネットワーク上にある兄弟コンテナとして実行されます。
container
を設定しない� �合、ステップがコンテナーで実行するように構成されたアクションを参照しない限り、すべてのステップは runs-on
で指定されたホスト上で直接実行されます。
注: コンテナー内の run
ステップの既定のシェルは、bash
ではなく sh
です。 これは、jobs.<job_id>.defaults.run
でも jobs.<job_id>.steps[*].shell
でもオーバーライドできます。
例: コンテナー内でジョブを実行する
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)
コンテナー イメージのみを指定する� �合は、image
キーワードを省略できます。
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
を設定します。 volumes (ボリュー� ) を使用すると、サービス間で、または1つのジョブのステップ間でデータを共有できます。 指定できるのは、名前付き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
オプションはサポートされていません。