Dockerコンテナの中で Github Actions のセルフホストランナーを動かす


概要

  • Github Actions にはセルフホストランナーと言う仕組みがある
    • 以後、セフルホストランナー = ランナーと表現する。
  • 1台のマシンで複数のランナーを動かしたい場合、コンテナで動かすことができれば最大メモリの指定など他への影響を抑えることが出来る。
  • コンテナで動かす手順をメモとして残す

ざっくり処理の流れ

  • Dockerfile で apt-get して必要なライブラリをインストール、ランナーのファイルをコピーしてベースとなるイメージを作成。
  • コンテナを起動し bash などでシェルからランナーの設定コマンドを実行
  • ランナーの起動コマンドを実行

コマンド実行しなければ設定できないのか?

  • github で提示されている手順にまずは則るため
  • (Dockerfile のみで完結するのが望ましいのが…)

検証環境

  • Windows10 Pro
  • WSL2
    • Ubuntu 20.04
  • Docker Desktop

手順

  • WSL2 の Ubuntu で操作
  • 以下内容で Dockerfile を作成
Dockerfile
FROM ubuntu:20.04
COPY *.tar.gz /root
COPY packages-microsoft-prod.deb /root

# sudo せず root で実行するための設定
ENV RUNNER_ALLOW_RUNASROOT=0

# ランナーが .NET を使うのでインストールする
RUN apt-get update && \
    apt-get install -y ca-certificates && \
    dpkg -i /root/packages-microsoft-prod.deb && \
    apt-get update && \
    apt-get install -y dotnet-runtime-5.0