了解です ?
では、あなたが選んだのは:
? Docker Hub(または GitHub Container Registry)でイメージを配布し、学生は Docker Desktop だけで作業できる構成
これが一番シンプルで、学生に「動く環境」を最速で提供できる方法です。
以下に、配布手順を完全版でまとめます?
? 目標
学生が次の2コマンドで作業を始められるようにします:
docker pull ghcr.io/<あなたのユーザ名>/riscv-lab:latest
docker run -it ghcr.io/<あなたのユーザ名>/riscv-lab:latest
?️ ステップ1:Dockerfileを作成
ローカルの作業フォルダに以下の Dockerfile を保存してください。
(このファイルが、Ubuntu + 各種ツール入りの環境を定義します)
# Ubuntu ベースのRISC-V開発環境
FROM ubuntu:22.04
LABEL maintainer="Your Name <you@example.com>"
LABEL description="Ubuntu environment with RISC-V GCC, Spike, Yosys, GTKWave for educational use"
ENV DEBIAN_FRONTEND=noninteractive
# 必要パッケージをインストール
RUN apt-get update && apt-get install -y \
git wget curl build-essential python3 python3-pip \
cmake ninja-build autoconf automake libtool \
libboost-all-dev libelf-dev pkg-config \
yosys gtkwave \
&& rm -rf /var/lib/apt/lists/*
# ---- RISC-V toolchain (prebuilt バイナリの利用でビルド時間短縮) ----
WORKDIR /opt
RUN wget https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.06.18/riscv64-unknown-elf-toolchain-ubuntu-22.04.tar.gz && \
tar -xzf riscv64-unknown-elf-toolchain-ubuntu-22.04.tar.gz && \
mv riscv64-unknown-elf-toolchain /opt/riscv && \
rm riscv64-unknown-elf-toolchain-ubuntu-22.04.tar.gz
ENV PATH="/opt/riscv/bin:${PATH}"
# ---- Spike simulator ----
RUN git clone https://github.com/riscv-software-src/riscv-isa-sim.git && \
cd riscv-isa-sim && mkdir build && cd build && \
../configure --prefix=/opt/riscv && make -j$(nproc) && make install
# ---- 学生用ディレクトリ ----
RUN useradd -ms /bin/bash student
USER student
WORKDIR /home/student
CMD ["/bin/bash"]
? ステップ2:Dockerイメージをビルド
docker build -t riscv-lab .
※ 初回は少し時間がかかります(10〜20分)
テスト起動:
docker run -it riscv-lab
→ Ubuntu の bash が開き、riscv64-unknown-elf-gcc, spike, yosys, gtkwave などが利用できます。
☁️ ステップ3:Docker Hub(または GHCR)へアップロード
✅ Docker Hub の場合(簡単)
-
https://hub.docker.com にアカウント作成
-
ログイン
docker login
-
タグをつける
docker tag riscv-lab yourdockerhubusername/riscv-lab:latest
-
プッシュ
docker push yourdockerhubusername/riscv-lab:latest
✅ GitHub Container Registry (GHCR) の場合(より安定)
-
GitHub の Personal Access Token を発行(
read:packages,write:packages許可) -
ログイン
echo YOUR_GITHUB_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin
-
タグ付け
docker tag riscv-lab ghcr.io/YOUR_GITHUB_USERNAME/riscv-lab:latest
-
プッシュ
docker push ghcr.io/YOUR_GITHUB_USERNAME/riscv-lab:latest
? ステップ4:学生に伝える手順
学生は Docker Desktop がインストールされていれば、この2コマンドだけでOKです:
docker pull ghcr.io/YOUR_GITHUB_USERNAME/riscv-lab:latest
docker run -it ghcr.io/YOUR_GITHUB_USERNAME/riscv-lab:latest
または Docker Hub の場合:
docker pull yourdockerhubusername/riscv-lab:latest
docker run -it yourdockerhubusername/riscv-lab:latest
⚙️ Windows学生向けアドバイス
-
Docker Desktop をインストール
-
「Settings → General → Use WSL2 based engine」にチェック
-
Ubuntu (WSL2) を Microsoft Store からインストール(推奨)
-
PowerShell または Ubuntu ターミナルから上記コマンドを実行
✅ これで完了!
| 構成要素 | 内容 |
|---|---|
| ベース環境 | Ubuntu 22.04 |
| 含まれるツール | RISC-V GCC / Spike / Yosys / GTKWave |
| 配布方法 | Docker Hub または GHCR |
| 学生が必要なもの | Docker Desktop のみ |
ご希望があれば、次に:
-
学生に配布する 日本語のREADMEテンプレート(操作説明書)
を Markdown または PDF 形式で作成できます。
作成しますか?
*****************************************************
*****************************************************
*****************************************************
*****************************************************
わかりました。前回の内容は セミナー用の Docker 環境構築や RISC-V SoC FPGA の教育パッケージ でしたね。
前回のポイントを整理すると:
-
受講者用環境の配布
-
Ubuntu 上に必要な設計ツールをインストール
-
Docker を使って受講者ごとの作業環境を作成
-
事前にツールを入れた Docker イメージを作成 → 受講者はワンクリックで利用可能
-
-
Docker イメージ作成
-
ベースイメージ: Ubuntu
-
ツールインストール: RISC-V コンパイラ、FPGA 開発ツール、VSCode など
-
設計データやサンプルプロジェクトを含める
-
-
運用方法
-
受講者はローカル PC で Docker を起動
-
設計作業の進捗をクラウドで確認可能
-
セミナー会場でも初日に環境セットアップ
-
ここからの「つづき」は、どの部分を詳しく知りたいですか?
例えば:
-
Docker イメージ作成の具体手順
-
受講者への配布方法
-
クラウドで進捗管理する方法
どれに進めますか?
あなた:
ChatGPT:
いいですね。では、Ubuntu上でRISC-V教育用Dockerイメージを作成する具体的な手順を、初心者にもわかるように順を追って説明します。
目的
受講者がUbuntu PCで簡単に「RISC-V SoC設計」環境を使えるように、
開発ツール+VSCode+サンプルデータをあらかじめ入れたDockerイメージを作ります。
手順一覧
① Ubuntuの準備
まず、Ubuntu(22.04推奨)をインストールしておきます。
すでにUbuntuが入っている人は、そのままでOKです。
② Dockerのインストール
端末を開いて以下を実行します。
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
Docker公式キーを登録します:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
リポジトリを登録:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker本体をインストール:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
テスト:
sudo docker run hello-world
→ “Hello from Docker!” が出れば成功です。
③ Dockerfile の作成
次に、ツールをまとめたDockerイメージの設計図「Dockerfile」を作ります。
例えば、次のようなファイルを作ります。
ファイル名: Dockerfile
# ベースとなるUbuntu
FROM ubuntu:22.04
# 環境変数(自動で対話モードをスキップ)
ENV DEBIAN_FRONTEND=noninteractive
# 基本ツールのインストール
RUN apt update && apt install -y \
build-essential git wget curl vim \
python3 python3-pip \
sudo
# RISC-V ツールチェーンのインストール
RUN apt install -y gcc-riscv64-unknown-elf gdb-multiarch
# VSCodeサーバーをインストール(リモート接続用)
RUN apt install -y wget
RUN wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -O vscode.deb && \
apt install -y ./vscode.deb
# FPGAツール(例: yosys, nextpnr, verilatorなど)
RUN apt install -y yosys nextpnr-ice40 verilator gtkwave
# 作業ディレクトリを設定
WORKDIR /workspace
# サンプルプロジェクトをコピー(同じフォルダに sample/ を用意しておく)
COPY sample/ /workspace/sample/
# デフォルトユーザ
RUN useradd -ms /bin/bash student
USER student
④ サンプルデータを用意
同じフォルダに sample/ ディレクトリを作り、
中に以下のようなものを入れます。
sample/
├── hello_riscv.c
├── Makefile
└── README.md
例: hello_riscv.c
#include <stdio.h>
int main() {
printf("Hello RISC-V World!\n");
return 0;
}
⑤ イメージをビルドする
ターミナルで Dockerfile のあるフォルダに移動して:
sudo docker build -t riscv-edu:latest .
完了すると、イメージ一覧に表示されます:
sudo docker images
出力例:
REPOSITORY TAG IMAGE ID CREATED SIZE
riscv-edu latest a1b2c3d4e5f6 10 seconds ago 2.1GB
⑥ コンテナとして起動
sudo docker run -it --name riscv-container riscv-edu:latest
コンテナに入ると、/workspace/sample にサンプルが入っています。
⑦ イメージを配布する(受講者用)
講師のPCで作ったイメージを保存:
sudo docker save -o riscv-edu.tar riscv-edu:latest
この riscv-edu.tar ファイルをUSBやクラウドで配布し、
受講者は以下でロードします:
sudo docker load -i riscv-edu.tar
その後、同様に起動できます:
sudo docker run -it riscv-edu:latest
これで完成!
受講者はワンクリックで同じ環境を再現できます。
(Docker Desktopを使えばGUIでも起動可能)
次に進めるなら、
-
クラウド配布方法(例:Docker Hubや自社サーバ)
-
VSCode Remote接続での使用法
-
FPGAボードと連携する設定
のいずれかを詳しく説明できます。
どれに進めますか?
あなた:
ChatGPT:
とても良い方法です!
DockerイメージやサンプルデータをGitHubで一元管理すれば、
受講者は「GitHubからクローンしてビルド」するだけで、
全員が同じ環境を再現できます。
以下に、**講師側(GitHubに登録する側)と受講者側(GitHubから使う側)**の
両方の手順を詳しく説明します。
講師側:GitHubでDocker環境を公開する手順
① GitHubリポジトリを作成
-
GitHubにログイン
-
「New repository」 →
例:-
Repository name:
riscv-edu-docker -
Description: RISC-V SoC Education Docker Environment
-
Public(またはPrivate)を選択
-
-
「Create repository」をクリック
② リポジトリ構成例
ローカルPCで以下のような構成を作ります:
riscv-edu-docker/
├── Dockerfile
├── sample/
│ ├── hello_riscv.c
│ ├── Makefile
│ └── README.md
└── README.md
例:Dockerfile
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y \
build-essential git wget curl vim \
python3 python3-pip sudo
# RISC-V コンパイラとツール群
RUN apt install -y gcc-riscv64-unknown-elf gdb-multiarch
# FPGAツール
RUN apt install -y yosys nextpnr-ice40 verilator gtkwave
# 作業ディレクトリ
WORKDIR /workspace
COPY sample/ /workspace/sample/
RUN useradd -ms /bin/bash student
USER student
例:sample/hello_riscv.c
#include <stdio.h>
int main() {
printf("Hello RISC-V World!\n");
return 0;
}
例:sample/Makefile
CC = riscv64-unknown-elf-gcc
CFLAGS = -O2
TARGET = hello_riscv
SRC = hello_riscv.c
all:
$(CC) $(CFLAGS) -o $(TARGET) $(SRC)
例:README.md
# RISC-V Education Docker Environment
This repository provides a pre-configured Docker image for RISC-V SoC design education.
## Build the Docker Image
```bash
git clone https://github.com/<yourname>/riscv-edu-docker.git
cd riscv-edu-docker
sudo docker build -t riscv-edu:latest .
Run the Container
sudo docker run -it --name riscv-container riscv-edu:latest
Inside the container, you can find sample files in /workspace/sample.
---
## ③ GitHubへアップロード
端末で以下を実行:
```bash
cd riscv-edu-docker
git init
git add .
git commit -m "Initial RISC-V Docker education environment"
git branch -M main
git remote add origin https://github.com/<yourname>/riscv-edu-docker.git
git push -u origin main
これでGitHub上に公開されます。
オプション:GitHub Container Registryに直接イメージを公開
DockerイメージそのものをGitHubにホストすることも可能です。
(受講者は「docker pull」で即取得可能)
-
GitHubにログイン → [Personal Access Token] を作成
-
ターミナルでログイン:
echo <TOKEN> | docker login ghcr.io -u <USERNAME> --password-stdin
-
イメージをタグ付けしてプッシュ:
docker tag riscv-edu ghcr.io/<USERNAME>/riscv-edu:latest
docker push ghcr.io/<USERNAME>/riscv-edu:latest
受講者は:
docker pull ghcr.io/<USERNAME>/riscv-edu:latest
で入手できます。
受講者側:GitHubから環境をセットアップする手順
① GitHubから取得
git clone https://github.com/<講師のアカウント>/riscv-edu-docker.git
cd riscv-edu-docker
② Dockerイメージをビルド
sudo docker build -t riscv-edu:latest .
③ コンテナを起動
sudo docker run -it --name riscv-container riscv-edu:latest
④ サンプルを実行
コンテナの中で:
cd /workspace/sample
make
./hello_riscv
出力例:
Hello RISC-V World!
まとめ
| 項目 | 講師 | 受講者 |
|---|---|---|
| リポジトリ作成 | GitHubで作成 | git clone |
| イメージ作成 | docker build |
同じ |
| 配布方式 | GitHub経由(コード or イメージ) | GitHubから取得 |
| 実行方法 | docker run |
同じ |
| 更新 | GitHubでgit push |
git pullで反映 |
次に説明できます:
-
GitHub Classroomを使って自動配布・提出を行う方法
-
VSCode Remote ContainersでGitHubリポジトリを直接開く方法
-
GitHub Actionsで自動ビルドして公開する方法
どれを続けて説明しましょうか?
わかりました。前回の内容は セミナー用の Docker 環境構築や RISC-V SoC FPGA の教育パッケージ でしたね。
前回のポイントを整理すると:
-
受講者用環境の配布
-
Ubuntu 上に必要な設計ツールをインストール
-
Docker を使って受講者ごとの作業環境を作成
-
事前にツールを入れた Docker イメージを作成 → 受講者はワンクリックで利用可能
-
-
Docker イメージ作成
-
ベースイメージ: Ubuntu
-
ツールインストール: RISC-V コンパイラ、FPGA 開発ツール、VSCode など
-
設計データやサンプルプロジェクトを含める
-
-
運用方法
-
受講者はローカル PC で Docker を起動
-
設計作業の進捗をクラウドで確認可能
-
セミナー会場でも初日に環境セットアップ
-
ここからの「つづき」は、どの部分を詳しく知りたいですか?
例えば:
-
Docker イメージ作成の具体手順
-
受講者への配布方法
-
クラウドで進捗管理する方法
どれに進めますか?
あなた:
ChatGPT:
いいですね。では、Ubuntu上でRISC-V教育用Dockerイメージを作成する具体的な手順を、初心者にもわかるように順を追って説明します。
目的
受講者がUbuntu PCで簡単に「RISC-V SoC設計」環境を使えるように、
開発ツール+VSCode+サンプルデータをあらかじめ入れたDockerイメージを作ります。
手順一覧
① Ubuntuの準備
まず、Ubuntu(22.04推奨)をインストールしておきます。
すでにUbuntuが入っている人は、そのままでOKです。
② Dockerのインストール
端末を開いて以下を実行します。
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
Docker公式キーを登録します:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
リポジトリを登録:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker本体をインストール:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
テスト:
sudo docker run hello-world
→ “Hello from Docker!” が出れば成功です。
③ Dockerfile の作成
次に、ツールをまとめたDockerイメージの設計図「Dockerfile」を作ります。
例えば、次のようなファイルを作ります。
ファイル名: Dockerfile
# ベースとなるUbuntu
FROM ubuntu:22.04
# 環境変数(自動で対話モードをスキップ)
ENV DEBIAN_FRONTEND=noninteractive
# 基本ツールのインストール
RUN apt update && apt install -y \
build-essential git wget curl vim \
python3 python3-pip \
sudo
# RISC-V ツールチェーンのインストール
RUN apt install -y gcc-riscv64-unknown-elf gdb-multiarch
# VSCodeサーバーをインストール(リモート接続用)
RUN apt install -y wget
RUN wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -O vscode.deb && \
apt install -y ./vscode.deb
# FPGAツール(例: yosys, nextpnr, verilatorなど)
RUN apt install -y yosys nextpnr-ice40 verilator gtkwave
# 作業ディレクトリを設定
WORKDIR /workspace
# サンプルプロジェクトをコピー(同じフォルダに sample/ を用意しておく)
COPY sample/ /workspace/sample/
# デフォルトユーザ
RUN useradd -ms /bin/bash student
USER student
④ サンプルデータを用意
同じフォルダに sample/ ディレクトリを作り、
中に以下のようなものを入れます。
sample/
├── hello_riscv.c
├── Makefile
└── README.md
例: hello_riscv.c
#include <stdio.h>
int main() {
printf("Hello RISC-V World!\n");
return 0;
}
⑤ イメージをビルドする
ターミナルで Dockerfile のあるフォルダに移動して:
sudo docker build -t riscv-edu:latest .
完了すると、イメージ一覧に表示されます:
sudo docker images
出力例:
REPOSITORY TAG IMAGE ID CREATED SIZE
riscv-edu latest a1b2c3d4e5f6 10 seconds ago 2.1GB
⑥ コンテナとして起動
sudo docker run -it --name riscv-container riscv-edu:latest
コンテナに入ると、/workspace/sample にサンプルが入っています。
⑦ イメージを配布する(受講者用)
講師のPCで作ったイメージを保存:
sudo docker save -o riscv-edu.tar riscv-edu:latest
この riscv-edu.tar ファイルをUSBやクラウドで配布し、
受講者は以下でロードします:
sudo docker load -i riscv-edu.tar
その後、同様に起動できます:
sudo docker run -it riscv-edu:latest
これで完成!
受講者はワンクリックで同じ環境を再現できます。
(Docker Desktopを使えばGUIでも起動可能)
次に進めるなら、
-
クラウド配布方法(例:Docker Hubや自社サーバ)
-
VSCode Remote接続での使用法
-
FPGAボードと連携する設定
のいずれかを詳しく説明できます。
どれに進めますか?
あなた:
ChatGPT:
とても良い方法です!
DockerイメージやサンプルデータをGitHubで一元管理すれば、
受講者は「GitHubからクローンしてビルド」するだけで、
全員が同じ環境を再現できます。
以下に、**講師側(GitHubに登録する側)と受講者側(GitHubから使う側)**の
両方の手順を詳しく説明します。
講師側:GitHubでDocker環境を公開する手順
① GitHubリポジトリを作成
-
GitHubにログイン
-
「New repository」 →
例:-
Repository name:
riscv-edu-docker -
Description: RISC-V SoC Education Docker Environment
-
Public(またはPrivate)を選択
-
-
「Create repository」をクリック
② リポジトリ構成例
ローカルPCで以下のような構成を作ります:
riscv-edu-docker/
├── Dockerfile
├── sample/
│ ├── hello_riscv.c
│ ├── Makefile
│ └── README.md
└── README.md
例:Dockerfile
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y \
build-essential git wget curl vim \
python3 python3-pip sudo
# RISC-V コンパイラとツール群
RUN apt install -y gcc-riscv64-unknown-elf gdb-multiarch
# FPGAツール
RUN apt install -y yosys nextpnr-ice40 verilator gtkwave
# 作業ディレクトリ
WORKDIR /workspace
COPY sample/ /workspace/sample/
RUN useradd -ms /bin/bash student
USER student
例:sample/hello_riscv.c
#include <stdio.h>
int main() {
printf("Hello RISC-V World!\n");
return 0;
}
例:sample/Makefile
CC = riscv64-unknown-elf-gcc
CFLAGS = -O2
TARGET = hello_riscv
SRC = hello_riscv.c
all:
$(CC) $(CFLAGS) -o $(TARGET) $(SRC)
例:README.md
# RISC-V Education Docker Environment
This repository provides a pre-configured Docker image for RISC-V SoC design education.
## Build the Docker Image
```bash
git clone https://github.com/<yourname>/riscv-edu-docker.git
cd riscv-edu-docker
sudo docker build -t riscv-edu:latest .
Run the Container
sudo docker run -it --name riscv-container riscv-edu:latest
Inside the container, you can find sample files in /workspace/sample.
---
## ③ GitHubへアップロード
端末で以下を実行:
```bash
cd riscv-edu-docker
git init
git add .
git commit -m "Initial RISC-V Docker education environment"
git branch -M main
git remote add origin https://github.com/<yourname>/riscv-edu-docker.git
git push -u origin main
これでGitHub上に公開されます。
オプション:GitHub Container Registryに直接イメージを公開
DockerイメージそのものをGitHubにホストすることも可能です。
(受講者は「docker pull」で即取得可能)
-
GitHubにログイン → [Personal Access Token] を作成
-
ターミナルでログイン:
echo <TOKEN> | docker login ghcr.io -u <USERNAME> --password-stdin
-
イメージをタグ付けしてプッシュ:
docker tag riscv-edu ghcr.io/<USERNAME>/riscv-edu:latest
docker push ghcr.io/<USERNAME>/riscv-edu:latest
受講者は:
docker pull ghcr.io/<USERNAME>/riscv-edu:latest
で入手できます。
受講者側:GitHubから環境をセットアップする手順
① GitHubから取得
git clone https://github.com/<講師のアカウント>/riscv-edu-docker.git
cd riscv-edu-docker
② Dockerイメージをビルド
sudo docker build -t riscv-edu:latest .
③ コンテナを起動
sudo docker run -it --name riscv-container riscv-edu:latest
④ サンプルを実行
コンテナの中で:
cd /workspace/sample
make
./hello_riscv
出力例:
Hello RISC-V World!
まとめ
| 項目 | 講師 | 受講者 |
|---|---|---|
| リポジトリ作成 | GitHubで作成 | git clone |
| イメージ作成 | docker build |
同じ |
| 配布方式 | GitHub経由(コード or イメージ) | GitHubから取得 |
| 実行方法 | docker run |
同じ |
| 更新 | GitHubでgit push |
git pullで反映 |
次に説明できます:
-
GitHub Classroomを使って自動配布・提出を行う方法
-
VSCode Remote ContainersでGitHubリポジトリを直接開く方法
-
GitHub Actionsで自動ビルドして公開する方法
どれを続けて説明しましょうか?
1. GitHubを使った進捗管理(最も推奨)
方法概要
受講者ごとに GitHubリポジトリを割り当てし、
自分の作業内容(ソースコード・レポート)をプッシュさせる方式です。
これにより、講師はGitHub上で全員の進捗を可視化できます。
導入手順
① 講師側の準備
-
GitHub Classroom(教育向け無料サービス)を利用します。
→ https://classroom.github.com -
「New Classroom」を作成
例:-
Name:
RISC-V_Seminar_2025
-
-
「Create new assignment」を選択
-
Assignment name:
Day1_Setup -
Repository template:
riscv-edu-docker(前回の教材用リポジトリを指定) -
Type: Individual assignment
-
② 受講者の参加
-
講師が発行したURLを共有
例:https://classroom.github.com/a/xyz123
-
受講者はGitHubでログインし、
自分用のリポジトリが自動生成されます。
例:https://github.com/riscv-seminar/student001-Day1_Setup
③ 提出と進捗確認
-
受講者は作業をGitで記録:
git add .
git commit -m "Day1 finished: built RISC-V toolchain"
git push
-
講師はClassroomの管理画面で:
-
各学生の進捗(push日時、ファイル変更)
-
提出状況(完了・未提出)
を一覧表示で確認できます。
-
メリット
-
自動で個別リポジトリを作成・整理
-
進捗がリアルタイムに可視化
-
GitHub上でソースコードのレビューやコメントも可能
-
課題提出・採点が簡単
2. Docker + ログ提出方式(オフライン併用)
概要
ネットが不安定な会場では、Dockerコンテナ内部での作業ログを保存し、
終了時にUSBやクラウドで回収する方法も使えます。
手順
① 受講者のコンテナにログ記録設定
講師が配布するDockerfileに次を追加:
RUN apt install -y script
セミナー開始時に:
script /workspace/worklog.txt
→ すべての端末操作が /workspace/worklog.txt に自動記録されます。
終了時に:
exit
② ログを提出
受講者は:
docker cp riscv-container:/workspace/worklog.txt .
→ ファイルを講師へ提出(USBやメール)
メリット
-
ネット接続不要
-
コマンド履歴がそのまま残る
-
短期セミナーでのバックアップ確認に有効
3. クラウドモニタリング方式(上級)
もし会場に安定したネット環境がある場合、
Dockerコンテナの作業状況をクラウドサーバで監視することもできます。
構成例
| 役割 | 内容 |
|---|---|
| 講師サーバ | GitHubまたは自社クラウド(例:AWS, Azure, GCP) |
| 受講者PC | Dockerコンテナ上で実行 |
| 通信 | Git push / VSCode Remote / SSH over VPN |
例:進捗確認スクリプト
受講者のコンテナで以下を定期実行:
git add progress.log
git commit -m "auto progress update"
git push origin main
progress.log に自動で時間・作業ステップを記録させます。
講師側はGitHubのcommit履歴を見て進捗を確認できます。
メリット
-
全員の活動をリアルタイムに把握
-
作業の記録がクラウドに残る
-
遠隔セミナーにも対応可
まとめ比較表
| 管理方式 | 特徴 | ネット接続 | 導入難易度 | 推奨用途 |
|---|---|---|---|---|
| GitHub Classroom | 自動でリポジトリ管理・進捗可視化 | 必要 | ★★ | 大学・研修セミナー |
| Dockerログ提出 | ログ保存で後日確認可能 | 不要 | ★ | 短期オフライン研修 |
| クラウド監視(Git push) | リアルタイム進捗追跡 | 必要 | ★★★ | オンライン・上級講座 |
次に進めるトピックとして:
-
GitHub Classroomの具体設定画面と操作例
-
受講者の進捗を自動集計するスクリプト例(講師用)
-
VSCode上でGitHub連携しながら提出させる手順
どれを詳しく見たいですか?
あなた:
ChatGPT:
とても良い方向性です!
つまりあなたの目指す形は、
GitHubで教材・Docker環境を一元管理し、受講者が自分のPCで即実行できるRISC-V SoC FPGA教育パッケージ
という“クラウド連携型教育システム”ですね。
以下に、
教材構成(GitHub)+ Docker実行環境+ セミナー運用方法
を統合した「完成版の設計図」をまとめます。
RISC-V SoC FPGA 教育パッケージ(GitHub + Docker セミナー構成)
全体概要
| 項目 | 内容 |
|---|---|
| 教材配布 | GitHub(講師リポジトリから自動配布) |
| 実行環境 | Docker上のUbuntu(全員同一環境) |
| 作業内容 | RISC-V SoC設計、C言語開発、FPGAビルド演習 |
| 進捗管理 | GitHub Classroom(自動個別リポジトリ・push確認) |
| 対応人数 | 20名程度(大学・企業研修向け) |
| 実施形態 | 会場内LANまたはオンラインハイブリッド |
構成イメージ
┌────────────────────────────┐
│ GitHub │
│ - 講師教材リポジトリ │
│ - Dockerfile + samples │
│ - GitHub Classroom課題 │
└─────────┬──────────────────┘
│ clone
┌─────────────┴──────────────┐
│ │
┌──────────────┐ ┌────────────────┐
│ 受講者PC #1 │ │ 受講者PC #20 │
│ Ubuntu + Docker │ │ Ubuntu + Docker │
└──────────────┘ └────────────────┘
│ │
└──────Git push──────────────┘
│
┌──────────────────────────┐
│ GitHub Classroom 管理画面 │
│(進捗・提出・採点) │
└──────────────────────────┘
GitHubリポジトリ構成(講師側)
riscv-soc-edu/
├── Dockerfile
├── sample/
│ ├── hello_riscv.c
│ ├── Makefile
│ ├── soc_top.v
│ └── README.md
├── tools/
│ ├── install_riscv_toolchain.sh
│ ├── install_fpga_tools.sh
│ └── setup_vscode.sh
├── data/
│ ├── tutorial_slides.pdf
│ └── testbench.v
├── classroom/
│ └── assignment1.md
└── README.md
Dockerfile(教材環境)
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# 基本パッケージ
RUN apt update && apt install -y \
build-essential git wget curl vim python3 python3-pip sudo make
# RISC-V ツールチェーン
RUN apt install -y gcc-riscv64-unknown-elf gdb-multiarch
# FPGAツール群(オープンソース)
RUN apt install -y yosys nextpnr-ice40 icestorm verilator gtkwave
# VSCode Server (Remote用)
RUN wget -O vscode.deb https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 && \
apt install -y ./vscode.deb
# 作業ディレクトリ
WORKDIR /workspace
COPY sample/ /workspace/sample/
COPY data/ /workspace/data/
RUN useradd -ms /bin/bash student
USER student
受講者側の利用手順
① GitHub Classroomに参加
講師から提供されたURLにアクセスし、
自動で個人リポジトリが生成される。
例:https://github.com/riscv-seminar/student01-Day1
② Docker環境を構築
git clone https://github.com/riscv-seminar/student01-Day1.git
cd student01-Day1
sudo docker build -t riscv-edu:latest .
sudo docker run -it --name riscv-container riscv-edu:latest
③ 実習
コンテナ内で:
cd /workspace/sample
make
./hello_riscv
④ 成果物の提出
git add .
git commit -m "Day1 complete"
git push
講師はGitHub Classroom上で進捗を確認。
講師側の管理方法
GitHub Classroomで課題作成
-
Assignment name:
Day1_RISCV_Build -
Template repo:
riscv-soc-edu -
Deadline設定、採点オプションON
管理画面でリアルタイム監視
-
学生のリポジトリ一覧表示
-
commit日時・ファイル変更確認
-
pull requestレビュー可能
自動評価スクリプト(例)
GitHub Actionsでビルドチェック自動化:
name: Auto Build Check
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: make -C sample
→ 学生がpushするたびに自動でビルドを検証。
教育的利点
| 項目 | 効果 |
|---|---|
| Docker環境 | 全員が同一のUbuntu・ツール構成で実習 |
| GitHub管理 | コード・進捗・評価が一元化 |
| Classroom | 自動でリポジトリ作成・採点 |
| オープンツール | 無料でFPGA実習まで可能 |
| オフライン対応 | Dockerイメージを事前配布すればネット不要 |
応用拡張
-
FPGAボード接続(USBデバイスをDockerで共有)
sudo docker run -it --device=/dev/ttyUSB0 riscv-edu
-
クラウドビルド環境(AWS EC2やGitHub Codespacesでも実行可)
-
教材更新はGitHubで一元管理、pullで全員自動更新
結論:教育現場での理想構成
| 要素 | 実装方法 |
|---|---|
| 教材共有 | GitHubリポジトリ |
| 実習環境 | Dockerイメージ(Ubuntu + ツール) |
| 成果提出 | GitHub push |
| 進捗確認 | GitHub Classroom |
| FPGA演習 | iCE40 / Artyボード対応 |
| 配布 | Docker Hub or GitHub Container Registry |
もし希望があれば、
この内容を**セミナー実施提案書(Word / PDF)**として整形できます。
例えばタイトル:「RISC-V SoC FPGA教育パッケージ構築・運用計画書」
作成しますか?
優しい説明
? GitHub+Dockerを使ったRISC-V教育パッケージのしくみ(やさしい説明)
? まず全体のイメージ
セミナーでは、受講者全員が同じツール環境を使って
RISC-V SoC(プロセッサの設計)やFPGA実験を行います。
昔は「全員にツールをインストール」する必要がありましたが、
いまは Docker を使えば、
「ツール一式をまとめたパッケージ」を配布できます。
さらに GitHub を使うことで、
教材の配布・進捗の確認・成果の提出まで、すべてオンラインで行えます。
? 3つの柱で構成されています
| 役割 | ツール | 内容 |
|---|---|---|
| ① 環境配布 | Docker | Ubuntu+開発ツールを1つのパッケージにする |
| ② 教材共有 | GitHub | 講師が教材を保存し、受講者がダウンロード |
| ③ 進捗管理 | GitHub Classroom | 各受講者の学習状況をオンラインで確認 |
?? 講師がやること(準備編)
① 教材を作る
講師は自分のPC上で「教材フォルダ」を作ります。
例:
riscv-edu/
├── Dockerfile ← Dockerの設計図
├── sample/ ← 演習用プログラム
│ ├── hello_riscv.c
│ ├── Makefile
│ └── README.md
└── README.md ← 教材の説明
② Dockerfile でツールをまとめる
「Dockerfile」という1枚の設計書に
Ubuntu・RISC-Vツール・FPGAツールなどを入れます。
例(わかりやすく簡略化)?
FROM ubuntu:22.04
RUN apt update && apt install -y \
build-essential git wget curl python3 python3-pip
RUN apt install -y gcc-riscv64-unknown-elf verilator yosys nextpnr-ice40
WORKDIR /workspace
COPY sample/ /workspace/sample/
このファイルを使うと、受講者は自分でツールを入れなくてもOKになります。
Dockerが自動で全部インストールしてくれます。
③ GitHubにアップロード(公開)
-
GitHubにアカウントを作ります(https://github.com)
-
「New Repository」をクリック
-
名前を
riscv-eduにして作成 -
ローカルの教材をアップロードします:
git init
git add .
git commit -m "first version of RISC-V education environment"
git remote add origin https://github.com/講師名/riscv-edu.git
git push -u origin main
これで教材がGitHub上に保存され、受講者が自由にダウンロードできます。
?? 受講者がやること(セミナー当日)
① 教材をGitHubからダウンロード
講師からURLをもらいます。
たとえば:
https://github.com/kunieda-lab/riscv-edu
受講者はUbuntuで次のコマンドを実行:
git clone https://github.com/kunieda-lab/riscv-edu.git
cd riscv-edu
② Dockerで環境を作る
ダウンロードしたフォルダに入って、
Dockerのイメージを作ります:
sudo docker build -t riscv-edu:latest .
これでUbuntu+RISC-Vツール+FPGAツールが自動的に入ります。
インターネット経由で少し時間がかかります(5〜10分ほど)。
③ 環境を起動する
イメージができたら、コンテナを起動します:
sudo docker run -it --name riscv-container riscv-edu:latest
これで、Dockerの中に入ります。
まるで別のUbuntuパソコンを使っているような感覚です。
④ 実習を行う
Dockerの中で以下を実行:
cd /workspace/sample
make
./hello_riscv
結果:
Hello RISC-V World!
これで、RISC-Vプログラムが正しく動作します?
⑤ 成果を提出する(GitHubで進捗報告)
受講者が練習課題を終えたら、自分の作業をGitHubにアップします:
git add .
git commit -m "Day1 complete"
git push
→ 講師のGitHub Classroomに自動で反映されます。
講師は誰が提出済みかを一覧で確認できます。
? 講師が進捗を確認する方法(GitHub Classroom)
GitHub Classroomとは?
GitHubの教育向けサービスで、
「受講者ごとに自動でリポジトリを作り、進捗を追跡」できるツールです。
使い方の流れ
-
講師が https://classroom.github.com にアクセス
-
「New Classroom」を作る
-
「New Assignment(課題)」を追加
-
教材リポジトリをテンプレートとして指定
-
-
Classroomが自動で「参加URL」を発行
例:https://classroom.github.com/a/riscv2025
-
受講者はそのURLから参加
→ 個別のGitHubリポジトリが自動生成される(例:student01-riscv-edu)
確認画面(講師用)
GitHub Classroomでは次の情報が一覧で見えます:
| 学生名 | 提出状況 | 最終更新日時 | ビルド結果 |
|---|---|---|---|
| student01 | ✅ 提出済み | 10/5 14:23 | 成功 |
| student02 | ⏳ 未提出 | – | – |
| student03 | ✅ 提出済み | 10/5 13:40 | 成功 |
? まとめ
| 項目 | 使用ツール | 内容 |
|---|---|---|
| 教材配布 | GitHub | 講師が教材を公開 |
| 開発環境 | Docker | Ubuntu+ツールをまとめる |
| 学生実習 | Docker内 | C言語・Verilogなどを実行 |
| 成果提出 | GitHub | 各自のリポジトリにpush |
| 進捗確認 | GitHub Classroom | 提出済みや更新日時を確認 |
? メリット(先生にも学生にも)
| 先生のメリット | 学生のメリット |
|---|---|
| PCごとの環境差がなくなる | 難しい設定なしで使える |
| 提出状況を一覧で確認できる | GitHubで進捗を残せる |
| 課題や教材を更新しやすい | どこからでも同じ環境で実行できる |
? 発展的な使い方(希望に応じて)
-
GitHub Actionsで自動ビルド・採点を行う
-
Docker Hubにイメージを公開(
docker pullで即使える) -
FPGAボード(iCE40など)をUSB接続して実機実験