👌
act/nektosの導入で詰まった点
開発環境
- Mac OS(Intel)
- Docker
- act/nektos
前提
CI/CDのツールとして有名なGithub actions
ですが、毎回変更をcommitしてpushするとなると面倒くささが増えますよね。
ローカルで実行できるようになると良いなと探していたところ見つけたのが、act/nektos
というツールでした。
その導入時に詰まった点について書いていこうと思います。
詰まった点
実行してみると、以下のようなエラーが出て終了してしまうという状態。
[setup/build] 🚀 Start image=catthehacker/ubuntu:full-20.04
[setup/build] 🐳 docker pull image=catthehacker/ubuntu:full-20.04 platform= username= forcePull=true
[setup/build] 🐳 docker create image=catthehacker/ubuntu:full-20.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[]
Error: failed to create container: 'Error response from daemon: No such image: catthehacker/ubuntu:full-20.04'
[WARN] - (starship::utils): Executing command "/usr/local/bin/git" timed out.
[WARN] - (starship::utils): You can set command_timeout in your config to a higher value to allow longer-running commands to keep executing.
しかも、docker pull
とdocker create
にめちゃくちゃ時間がかかるという状態。
これでは手軽に実行できないなという感想でした。
色々と原因を探っていて、辿り着いた箇所としましては、初めて実行する場合に、large
, medium
, micro
の3つが選べるのですが、自分は特に考えずにlarge
を選択していました。
$ act
? Please choose the default image you want to use with act:
- Large size image: +20GB Docker image, includes almost all tools used on GitHub Actions (IMPORTANT: currently only ubuntu-18.04 platform is available)
- Medium size image: ~500MB, includes only necessary tools to bootstrap actions and aims to be compatible with all actions
- Micro size image: <200MB, contains only NodeJS required to bootstrap actions, doesn't work with all actions
ここをmedium
に変更したら上手く実行されるようにしました。
まず、現状が以下のようになっています。
❯ cat ~/.actrc
-P ubuntu-latest=catthehacker/ubuntu:full-latest
-P ubuntu-latest=catthehacker/ubuntu:full-20.04
-P ubuntu-18.04=catthehacker/ubuntu:full-18.04
以下のサイトにて、指定できるバージョンがわかるので、それを指定してあげます。
これを参考にして明示的にバージョンを設定して実行するようにします。
act -P ubuntu-latest=catthehacker/ubuntu:act-20.04
もしくは、vim
などを使い、~/.actrc
のバージョンを書き換えてやります。
すると、上手く実行されるようになりました。
Discussion