container内でjobを実行する (github actions)
runner (GitHub Actions)上で起動したDocker Contianer上でjobを実行する
https://docs.github.com/en/actions/how-tos/write-workflows/choose-where-workflows-run/run-jobs-in-a-container
例
code:yaml
jobs:
build:
runs-on: ubuntu-latest # VMはUbuntu
container:
image: node:20-bookworm # でも中身はこのコンテナで動く
steps:
- uses: actions/checkout@v4
- run: node --version # コンテナ内のnode 20が使われる
runs-onとcontainerは別である
runs-onのVMはあくまでDockerをホストする土台で、実際の run: ステップはコンテナの中で実行される
書き方
code:yaml
# 省略形
container: node:20
# 詳細形
container:
image: ghcr.io/owner/myimage:latest
credentials: # プライベートレジストリの認証
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
NODE_ENV: test
ports:
- 8080
volumes:
- my_volume:/data
options: --cpus 2 # docker create に渡す追加オプション