学習中の課題をPRする際にGithubActionsを通して行う様になっていますが、前回までのPRでは問題なかったのに突如エラーが発生してPRをすることができなくなったので内容を紹介していきます。
1, エラーの詳細
発生した状況としてはローカルからリモートへデータをPushした時にGithubActionを通している際に発生したエラーです。
原因としてはDocker compose V1がGithub ActionsのWindowsとUbuntuのイメージで使えなくなったことが挙げられます。
Docker compose V1は2024年4月にV2へ移行したので、V1に属するコマンド(docker-compose)が使えなくなり、エラーの原因となっていました。
name: "【Docker】Ruby on Rails CI"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
run-htmlbeautifier:
name: Run htmlbeautifier
runs-on: ubuntu-latest
steps:
- name: checkout pushed commit
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: run htmlbeautifier on docker-compose
run: |
docker-compose build #問題となったコード
docker-compose run --rm web bin/setup #問題となったコード
docker-compose run --rm web bin/htmlbeautifier #問題となったコード
git diff --exit-code
2, 解決策
V1コマンド(docker-compose)コマンドが使えなくなっているので、代わりにV2コマンド(docker compose)へ切り替えました。
これによりエラーは解消され、GithubActionsも正常に動きPRまで完了できました。
name: "【Docker】Ruby on Rails CI"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
run-htmlbeautifier:
name: Run htmlbeautifier
runs-on: ubuntu-latest
steps:
- name: checkout pushed commit
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: run htmlbeautifier on docker-compose
run: |
docker compose build #ハイフンを削除
docker compose run --rm web bin/setup #ハイフンを削除
docker compose run --rm web bin/htmlbeautifier #ハイフンを削除
git diff --exit-code
3, 参考にした資料
Docker Compose v1 が GitHub Actions で使えなくなった件
Error: docker-compose command not found #116610
[Ubuntu, Windows] Docker Compose v1 will be removed from images on April, 1 #9557
4, 気になること
今回、docker composeコマンドを修正することでエラーを解決できたけど、本来このエラーは2024年4月に発生していたはずなのではと考えています。
というのもDocker compose V1からV2への移行がこの時期に行われたので、それと同時に発生しているはずだったのではと推測。加えてエラーが発生したGithubActionsは先月、先々月と使用しているので、その時期に発生しなかったのも不思議です。
これについては新しいことが分かったら記事を更新して紹介したいと思います。
最後まで読んで頂き有難うございました。