at_shinya.matsumoto
2025年5月1日 8時48分
Armadillo Base OSではアプリケーションはコンテナ内で動作させます。
VScode(ABOSDEエクステンション)では少し特殊な方法でC言語アプリケーションをコンパイルしますので
その仕組みについて解説します。
ABOSDEにおけるC言語ソースのコンパイルの仕組み
ABOSDEではC言語のソースをコンパイルする際はビルド用コンテナで実施しております。
コンテナ内で実施するメリット・デメリットは下記になります。
コンテナでコンパイルするメリット
・ホスト環境に余計なソフトウェアをインストールせずに実行可能
・コンテナを消す事でインストールしたソフトウェアを完全に削除可能
・コンパイル環境を保存したり持ち出しが可能
・コンテナをArmadilloのアーキテクチャにする為、クロスコンパイラが不要
コンテナでコンパイルするデメリット
・コンパイル用と実運用でコンテナを分ける為、2回ビルドが必要でビルドに時間が掛かる
※一度ビルドした後はキャッシュで短縮可能かつ、Cのソース変更はコンテナのビルドが不要
ビルドするコンテナを分ける理由
コンテナはレイヤー構造になっており、一度インストールしたソフトウェアは削除してもコンテナサイズが
小さくなりません。よって、コンパイルする為だけに使用するソフトウェアを実運用で使用するコンテナに
入れない事でコンテナサイズを小さくすることができます。
コンテナのビルドイメージ
主なフローは下記の様になっており、ビルド用コンテナは意識せずに開発出来る様になっています。
各工程の詳細な手順は下記ブログを参照下さい。
DebianからABOSへの移行手順(C言語編)
解説は以上となります。