42Tokyoでの開発用の Docker イメージを作成するプロジェクトです。このイメージには、C/C++ 開発に必要な各種コンパイラやツールチェーンが含まれています。
- ベースイメージ:Ubuntu 22.04
- コンパイラ:
- GCC 10、11、12
- Clang 12
- Python 環境:
- Python 3.10
pyyaml
パッケージ
- その他ツール:
make
cmake
gdb
valgrind
- Dockerfile:メインの Docker イメージをビルドするための設定ファイル。
- install.yml:追加でインストールしたいパッケージや設定を定義する YAML ファイル。
- install_script.py:
install.yml
を読み込み、指定されたパッケージをインストールするスクリプト。 - test/Dockerfile:ビルドしたイメージをテストするための Dockerfile。
プロジェクトのルートディレクトリで以下のコマンドを実行します。
docker build -t 42image:latest .
install.yml
を使用したインストールをスキップしたい場合は、以下のようにビルド引数を指定します。
docker build --build-arg USE_YAML=false -t 42image:latest .
ビルドした Docker イメージを使用してコンテナを起動します。
docker run -it 42image:latest
ビルド済みの Docker イメージを .tar
ファイルとして保存するには、以下のコマンドを使用します。
docker save -o 42image_latest.tar 42image:latest
これで、42image_latest.tar
というファイルにイメージが保存されます。
このコマンドを実行すると、42image:latest
という名前でイメージがインポートされます。
これにより、設定済みの開発環境でシェルアクセスが可能になります。
保存しておいたイメージ (42image_latest.tar
) をロードします。
もしくは下記から主が書き出したimageをダウンロードします。
42image_latest.tar - Google Drive
docker load < 42image_latest.tar
このコマンドを実行すると、42image:latest
という名前のイメージがDockerのローカル環境に登録されます。
インポートしたイメージを別の Dockerfile のベースイメージとして使用するには、以下のように記述します。
FROM 42image:latest
COPY ./src /src
WORKDIR /src
CMD ["make", "test"]