適用範囲:
Keil MDK 5, Keil MDK 6
質問:
Keil MDKおよびコンパイラをWindows Docker Container 内で実行できますか?
回答:
Windows 用のDocker Container は、特別な調整を行わない限りグラフィカルユーザインターフェイス(GUI) をサポートしないため、Keil MDK 5 インストーラおよびµVision はこの環境で動作しません。
一方、Keil MDK 6 では状況が異なります。GUI(Visual Studio Code) とビルドツール(CMSIS Toolbox、Ninja、cmake)、およびコンパイラツールチェイン(Arm Compiler for Embedded) は個別の扱いになっています。
さらなる詳細:
- Keil MDK 5 インストーラとuVision IDE は、ユーザインターフェイス(UI) に依存しているため、Docker Container 内では実行できません。µVision(UV4.exe) は、'-j0' オプションを指定して起動した場合でもUI を必要とします。(µVision User's Guide - Command Line 参照)
Arm Compiler for Embedded を使用してアプリケーションをビルドする場合は、コンパイラツールチェインを Docker Container にインストールし、バッチファイルまたはmakeファイル経由で使用できます。µVision はプロジェクトのビルド用バッチファイルを作成できます。インストールとライセンスの詳細については、knowledgebaseの記事"How to use Keil legacy Tools with an MDK Professional UBL License in a CI Environment."(または弊社FAQ"MDK Professional UBLライセンスを利用してKeil LegacyツールをCI環境で使用するには")を参照してください。
- Keil MDK 6(Keil Studio) は、はるかに柔軟性に優れています。GUI(Visual Studio Code)、ビルドツール(CMSIS Toolbox、Ninja、cmake)、コンパイラツールチェイン(Arm Compiler for Embedded) がそれぞれ独立したコンポーネントとして構成されています。開発者は GUI を操作しながら、同じプロジェクト/ソリューションファイル(*.csolution.yml) を使用して、CMSIS Toolbox を利用しDocker Container 内でアプリケーションをビルドできます。MDK 6 は、同じプロジェクト/ソリューションファイルを使用するマルチプラットフォーム(Windows、Linux、Mac) に対応しているため、開発者はWindows 環境で作業しながら、CIサーバー用のDocker Container をLinux 上で実行することも可能です。
- 現行製品にはUser Based License(UBL) を、旧バージョンのMDKにはFlexnetFloating ライセンスのご利用をお勧めします。UBL ライセンスは、クラウドサーバ(デフォルト)またはLocal License Server(LLS)で使用できます。
参考資料:
- System Requirements
- CMSIS-Toolbox documentation
- Install tools on the command line using vcpkg
- GitHub Action内でDocker containerを実行するサンプルプロジェクト:Foundation Components for MLOps Systems
元記事: