既に issue もあがってるので来週には修正されていると信じますが、エラー: bash: /usr/bin/func: cannot execute binary file: Exec format error の対処方法のメモです。
事象
2025年9月18日時点で、Azure Functions を利用するために Linux ベースの devcontainer を新規に作って Function App を実行しようと func コマンド打つとすると以下のエラーになります。
- bash: /usr/bin/func: cannot execute binary file: Exec format error

ちなみに私の場合 Python の 3.12-bookworm をベースに features で Azure Functions Core Tools を指定しています。

原因をざっくりいうと、この指定により現時点でインストールされる Azure Functions Core Tools の latest: 4.3.0~preview1 がおわってるからです。
対処方法
npm が入っている container の場合
問題の 4.3.0-preview1 が install されていることを確認し、削除しましょう。
npm listnpm uninstall azure-functions-core-tools

後はバージョン指定をして npm からインストール。
npm i -g azure-functions-core-tools@4.2.2
インストール後、今まで開いていたターミナルは一度閉じ、新規にターミナルを開きます。
func -v をたたくと期待通り 4.2.2 がインストールされて動作することが確認できます。
npm が入っていない container の場合
npm が入っていない場合は apt で Azure Functions Core Tools を更新します。
まずは問題となってる azure-functions-core-tools 4.3.0~preview1-1 を削除します。ちなみに削除せずにインストールしようとすると、上書きに失敗して終わります。
sudo apt-get remove azure-functions-core-tools
そして 4.2.2-1 のバージョンを指定してインストール。
sudo apt-get updatesudo apt-get install azure-functions-core-tools-4=4.2.2-1
これで func -v とかで確認すると正常に動作します。

ターミナルを新規に開きなおさなくても正常に認識するはずですが、認識されない場合はターミナルを開きなおしてみましょうって感じでしょうか。
めちゃ個人的な話な余談ですが、4.2.2 は MCP の Streamable HTTP 対応なので、このバージョンにさげても MCP の実装については影響ないです。
参考
https://github.com/Azure/azure-functions-core-tools/issues/4649