基幹システムグループ N1! オートメーションスペシャリストの南川です。
今回は、Docker Compose v1 ( docker-compose
コマンド) が GitHub Actions の Ubuntu と Windows のイメージで使えなくなった件について説明します。
背景
2024年4月3日の朝に、以前紹介したDockerイメージのビルド失敗を通知するGitHub Actionsのワークフローが失敗しているのを確認しました。
その時の実行結果のログ (一部マスク済み) は以下の通りです。
1 2 3 4 5 6 7 |
Run docker-compose build docker-compose build shell: /usr/bin/bash -e {0} env: ACTION_URL: https://github.com/***/***/actions/runs/*** /home/runner/work/_temp/********-****-****-****-************.sh: line 1: docker-compose: command not found Error: Process completed with exit code 127. |
どうやら、 docker-compose
コマンドが見つからないようです。
原因
Ubuntu と Windows イメージから Docker Compose v1 が削除されたのが原因でした。
2024年4月1日から 3~4 日間 かけて削除されるとのことです。
https://github.com/actions/runner-images/issues/9557
ちなみに、この Issue は GitHub ホステッドランナーにプリインストール済みのソフトウェア一覧ページから見つけました。
For the overall list of included tools for each runner operating system, see the Available Images documentation the runner images repository.
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#preinstalled-software
対応
以下のページを参照し、Docker Compose v1 から v2 に移行する必要があります。
https://docs.docker.com/compose/migrate/
今回のケースでは、 docker-compose build
コマンドを docker compose build
コマンドに書き換えるだけで動くようになりました。
修正前
1 2 3 4 |
- name: define run url run: echo "ACTION_URL=https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> $GITHUB_ENV - name: docker-compose build run: docker-compose build |
修正後
1 2 3 4 |
- name: define run url run: echo "ACTION_URL=https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> $GITHUB_ENV - name: docker compose build run: docker compose build |
「path:.github/workflows AND ("docker-compose build" OR "docker-compose pull")
」で検索すると、修正が必要なワークフローファイルを確認できます。
https://github.com/actions/runner-images/issues/9557#issuecomment-2033320632
https://docs.github.com/ja/search-github/github-code-search/understanding-github-code-search-syntax
まとめ
今回の問題は、 Docker Compose v1 が非推奨になってからも docker-compose
コマンドを使い続けていたのが原因でした。
今回、すぐに気づけた要因は以前に作成した定期的にビルドするワークフローのおかげであり、興味のある方は是非導入してみてください(宣伝)
みなさんも EOL に気を付けながら、ツールを使っていきましょう。