このリポジトリは、再利用可能な base image を中心にした Linux 向け Siv3D テンプレートです。
- ルート直下の CMake プロジェクトでゲームコードを置ける
ghcr.io/xlair-dev/siv3d-docker-baseに公開される Siv3D base image を使える- devcontainer で Siv3D の再ビルドなしにすぐ開発を始められる
docker composeでホストの GUI に接続して Linux 上で実行できるccacheと build ディレクトリで再ビルドを高速化できる- GitHub Actions から base image を自動公開できる
/home/noname/me/workspace/personal/siv3d-template をワークスペースルートにして devcontainer を開くと、公開済みの base image をそのまま利用します。
devcontainer up --workspace-folder /home/noname/me/workspace/personal/siv3d-template --remove-existing-containerworkspace-folder を省略する場合は、必ず siv3d-template リポジトリのルートで実行してください。siv3d-docker 側には devcontainer 設定を置いていません。
docker compose up -d
docker compose exec siv3d-app bashコンテナ内またはローカルの Linux 環境で、リポジトリのルートからビルドします。build/ はホスト側に置かれるので、そのまま cmake が書き込めます。
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Debug
cmake --build build./build/Siv3DTemplate- Siv3D base image の分離: 重い Siv3D ビルドを
docker/base/Dockerfileに集約 - 高速な再ビルド:
ccacheとホスト側build/でゲーム側の再ビルドを短縮 - Linux GUI 対応: X11 をホストにバイパスして描画可能
- devcontainer 対応: そのまま開いて開発を始められる
- GitHub Actions 対応:
mainへの push などで GHCR に公開 - テンプレート向け構成:
src/Main.cppだけを触ればゲームの起点になる
CMakeLists.txt: ルートの CMake 定義src/Main.cpp: グラフィカルな最小サンプルdocker/base/Dockerfile: Siv3D base image のビルド定義.devcontainer/devcontainer.json: devcontainer 設定compose.yml: ローカル実行用の compose 定義.github/workflows/publish-base-image.yml: GHCR への公開 workflow