Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-10-12. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

コンテナ内でのジョブの実行

コンテナーを使用して、ジョブのステップを実行します。

注: 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 でもオーバーライドできます。

例: コンテナー内でジョブを実行する

YAML
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 を使って usernamepasswordmap を設定できます。 資� �情� �は、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 オプションはサポートされていません。