書いた契機 GitHub Actions上でテストを実行する際に、使い捨てのデータベースにアクセスしたいと思いドキュメントを読んでいた。 docs.github.com これを読んでいて「コンテナーからサービスコンテナにアクセスするのと、ランナーマシンからサービスコンテナにアクセスするときの違いってどういうこと?」と思ったのであれこれ試行錯誤したメモ。 初歩的な理解ができていなかったので結構理解するのに詰まってしまった。 要約 GitHub ActionsのランナーマシンではDockerが動くので、コンテナ上でもJob を実行させることができる サービスコンテナはJobを実行させるコンテナとは別にコンテナを起動させて、Jobと通信することができる 用途として、PostgreSQLとかRedisを起動させて、スクリプトを実行するなど ランナーマシン上で直接Jobを実行する時はマシン内のDoc