Skip to content

Commit a79ba36

Browse files
committed
✨ split template workspace into separate repo
1 parent aa732e8 commit a79ba36

5 files changed

Lines changed: 26 additions & 107 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 0 additions & 12 deletions
This file was deleted.

README.md

Lines changed: 26 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,46 @@
1-
## Siv3D テンプレート
1+
## Siv3D Base Image
22

3-
このリポジトリは、再利用可能な base image を中心にした Linux 向け Siv3D テンプレートです
3+
このリポジトリは、Siv3D 用の base image をビルドして GHCR に公開するためのものです
44

5-
### できること
5+
### 責務
66

7-
- ルート直下の CMake プロジェクトでゲームコードを置ける
8-
- `ghcr.io/n4mlz/siv3d-docker-base` に公開される Siv3D base image を使える
9-
- devcontainer で Siv3D の再ビルドなしにすぐ開発を始められる
10-
- `docker compose` でホストの GUI に接続して Linux 上で実行できる
11-
- `ccache` と build 用 volume で再ビルドを高速化できる
12-
- GitHub Actions から base image を自動公開できる
7+
- Siv3D 本体のビルドとインストール
8+
- Linux 用の開発依存パッケージの管理
9+
- `ccache` と BuildKit キャッシュを使った高速化
10+
- GitHub Actions から `ghcr.io/n4mlz/siv3d-docker-base` への公開
1311

14-
### 使い方
12+
### できること
1513

16-
#### 1. devcontainer で開く
14+
- Siv3D を何度もローカルでビルドし直さずに済む
15+
- template 側の devcontainer / compose から共通 image を使える
16+
- マルチステージビルドで最終 image を小さく保てる
17+
- Linux GUI や開発依存を image 側に寄せられる
1718

18-
VS Code などで devcontainer を開くと、公開済みの base image をそのまま利用します。
19+
### 使い方
1920

20-
#### 2. compose で起動する
21+
#### ローカルで image をビルドする
2122

2223
```bash
23-
docker compose up -d
24-
docker compose exec siv3d-app bash
24+
docker buildx build -f docker/base/Dockerfile --load .
2525
```
2626

27-
#### 3. プロジェクトをビルドする
28-
29-
コンテナ内またはローカルの Linux 環境で、リポジトリのルートからビルドします。
27+
#### GHCR に公開する
3028

31-
```bash
32-
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Debug
33-
cmake --build build
34-
```
29+
`.github/workflows/publish-base-image.yml``main` への push や tag push で自動公開します。
3530

36-
#### 4. 実行する
31+
#### 利用側テンプレート
3732

38-
```bash
39-
./build/Siv3DTemplate
40-
```
33+
この base image を利用するテンプレートは、別リポジトリの `/home/noname/me/workspace/personal/siv3d-template` に分離しています。
4134

4235
### 主な feature
4336

44-
- **Siv3D base image の分離**: 重い Siv3D ビルドを `docker/base/Dockerfile` に集約
45-
- **高速な再ビルド**: `ccache` と named volume でゲーム側の再ビルドを短縮
46-
- **Linux GUI 対応**: X11 をホストにバイパスして描画可能
47-
- **devcontainer 対応**: そのまま開いて開発を始められる
48-
- **GitHub Actions 対応**: `main` への push などで GHCR に公開
49-
- **テンプレート向け構成**: `src/Main.cpp` だけを触ればゲームの起点になる
50-
51-
### GitHub Actions
52-
53-
`docker/base/Dockerfile` から base image をビルドし、`.github/workflows/publish-base-image.yml` から GHCR に公開します。
54-
55-
`latest` と commit/tag ベースのタグを付けるので、devcontainer と compose の両方で安定して利用できます。
37+
- **Siv3D base image の集中管理**: heavy な build をこの repo に集約
38+
- **キャッシュ対応**: BuildKit cache と `ccache` を活用
39+
- **小さい最終 image**: multi-stage で build tree を持ち込まない
40+
- **GHCR 公開**: GitHub Actions で継続的に配布
5641

5742
### ファイル構成
5843

59-
- `CMakeLists.txt`: ルートの CMake 定義
60-
- `src/Main.cpp`: グラフィカルな最小サンプル
61-
- `docker/base/Dockerfile`: Siv3D base image のビルド定義
62-
- `.devcontainer/devcontainer.json`: devcontainer 設定
63-
- `compose.yml`: ローカル実行用の compose 定義
64-
- `.github/workflows/publish-base-image.yml`: GHCR への公開 workflow
44+
- `docker/base/Dockerfile`: Siv3D base image の定義
45+
- `.github/workflows/publish-base-image.yml`: GHCR への publish workflow
46+
- `.dockerignore`: Docker build context の整理

compose.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/Main.cpp

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)