Packer buildエラー「/usr/bin/env: ‘bash\r’: No such file or directory」の対処法

Packer buildエラー「/usr/bin/env: ‘bash\r’: No such file or directory」の対処法


エラー内容

Packer で AMI をビルド中、以下のようなエラーが発生しました。

==> bake-test.amazon-ebs.al2023_arm64: + sudo -E /usr/local/bin/bootstrap.sh
==> bake-test.amazon-ebs.al2023_arm64: /usr/bin/env: ‘bash\r’: No such file or directory

原因

実行しようとしたシェルスクリプト(bootstrap.sh)が CRLF で保存されていたことが原因です。

Windows で作業してましたからね。

Linux 環境では改行コードが LF である必要があります。

つまり、Packer 特有の問題ではありません。

sh の先頭が#!/usr/bin/env bash\r\nとなっていたため、存在しないbash\rを探してしまったということのようです。

対処法

改行コードを LF に変換して保存すれば解決します。

VS Code であれば右下のCRLFを押下した後、LF を選択すれば OK です。

気づき

ソースの 1 行目の#!/usr/bin/env bashって Shebang(シバン/シェバン)って呼ぶんですね。(知らんかった( ゚ Д ゚))