Docker

了解です ?
では、あなたが選んだのは:

? 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 の場合(簡単)

  1. https://hub.docker.com にアカウント作成

  2. ログイン

    docker login
  3. タグをつける

    docker tag riscv-lab yourdockerhubusername/riscv-lab:latest
  4. プッシュ

    docker push yourdockerhubusername/riscv-lab:latest

✅ GitHub Container Registry (GHCR) の場合(より安定)

  1. GitHub の Personal Access Token を発行(read:packages, write:packages 許可)

  2. ログイン

    echo YOUR_GITHUB_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin
  3. タグ付け

    docker tag riscv-lab ghcr.io/YOUR_GITHUB_USERNAME/riscv-lab:latest
  4. プッシュ

    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学生向けアドバイス

  1. Docker Desktop をインストール

  2. 「Settings → General → Use WSL2 based engine」にチェック

  3. Ubuntu (WSL2) を Microsoft Store からインストール(推奨)

  4. PowerShell または Ubuntu ターミナルから上記コマンドを実行


✅ これで完了!

構成要素 内容
ベース環境 Ubuntu 22.04
含まれるツール RISC-V GCC / Spike / Yosys / GTKWave
配布方法 Docker Hub または GHCR
学生が必要なもの Docker Desktop のみ

ご希望があれば、次に:

  • 学生に配布する 日本語のREADMEテンプレート(操作説明書)
    を Markdown または PDF 形式で作成できます。

作成しますか?

*****************************************************

*****************************************************

*****************************************************

*****************************************************

わかりました。前回の内容は セミナー用の Docker 環境構築や RISC-V SoC FPGA の教育パッケージ でしたね。

前回のポイントを整理すると:

  1. 受講者用環境の配布

    • Ubuntu 上に必要な設計ツールをインストール

    • Docker を使って受講者ごとの作業環境を作成

    • 事前にツールを入れた Docker イメージを作成 → 受講者はワンクリックで利用可能

  2. Docker イメージ作成

    • ベースイメージ: Ubuntu

    • ツールインストール: RISC-V コンパイラ、FPGA 開発ツール、VSCode など

    • 設計データやサンプルプロジェクトを含める

  3. 運用方法

    • 受講者はローカル PC で Docker を起動

    • 設計作業の進捗をクラウドで確認可能

    • セミナー会場でも初日に環境セットアップ

ここからの「つづき」は、どの部分を詳しく知りたいですか?
例えば:

  • 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ボードと連携する設定

のいずれかを詳しく説明できます。
どれに進めますか?

あなた:
講師はGithub上に作成、受講者はGithubからダウンロードの方式
ChatGPT:

とても良い方法です!
DockerイメージやサンプルデータをGitHubで一元管理すれば、
受講者は「GitHubからクローンしてビルド」するだけで、
全員が同じ環境を再現できます。

以下に、**講師側(GitHubに登録する側)受講者側(GitHubから使う側)**の
両方の手順を詳しく説明します。


講師側:GitHubでDocker環境を公開する手順

① GitHubリポジトリを作成

  1. GitHubにログイン

  2. 「New repository」 →
    例:

    • Repository name: riscv-edu-docker

    • Description: RISC-V SoC Education Docker Environment

    • Public(またはPrivate)を選択

  3. 「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」で即取得可能)

  1. GitHubにログイン → [Personal Access Token] を作成

  2. ターミナルでログイン:

    echo <TOKEN> | docker login ghcr.io -u <USERNAME> --password-stdin
  3. イメージをタグ付けしてプッシュ:

    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 の教育パッケージ でしたね。

前回のポイントを整理すると:

  1. 受講者用環境の配布

    • Ubuntu 上に必要な設計ツールをインストール

    • Docker を使って受講者ごとの作業環境を作成

    • 事前にツールを入れた Docker イメージを作成 → 受講者はワンクリックで利用可能

  2. Docker イメージ作成

    • ベースイメージ: Ubuntu

    • ツールインストール: RISC-V コンパイラ、FPGA 開発ツール、VSCode など

    • 設計データやサンプルプロジェクトを含める

  3. 運用方法

    • 受講者はローカル PC で Docker を起動

    • 設計作業の進捗をクラウドで確認可能

    • セミナー会場でも初日に環境セットアップ

ここからの「つづき」は、どの部分を詳しく知りたいですか?
例えば:

  • 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ボードと連携する設定

のいずれかを詳しく説明できます。
どれに進めますか?

あなた:
講師はGithub上に作成、受講者はGithubからダウンロードの方式
ChatGPT:

とても良い方法です!
DockerイメージやサンプルデータをGitHubで一元管理すれば、
受講者は「GitHubからクローンしてビルド」するだけで、
全員が同じ環境を再現できます。

以下に、**講師側(GitHubに登録する側)受講者側(GitHubから使う側)**の
両方の手順を詳しく説明します。


講師側:GitHubでDocker環境を公開する手順

① GitHubリポジトリを作成

  1. GitHubにログイン

  2. 「New repository」 →
    例:

    • Repository name: riscv-edu-docker

    • Description: RISC-V SoC Education Docker Environment

    • Public(またはPrivate)を選択

  3. 「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」で即取得可能)

  1. GitHubにログイン → [Personal Access Token] を作成

  2. ターミナルでログイン:

    echo <TOKEN> | docker login ghcr.io -u <USERNAME> --password-stdin
  3. イメージをタグ付けしてプッシュ:

    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上で全員の進捗を可視化できます。


導入手順

① 講師側の準備

  1. GitHub Classroom(教育向け無料サービス)を利用します。
    https://classroom.github.com

  2. 「New Classroom」を作成
    例:

    • Name: RISC-V_Seminar_2025

  3. 「Create new assignment」を選択

    • Assignment name: Day1_Setup

    • Repository template: riscv-edu-docker(前回の教材用リポジトリを指定)

    • Type: Individual assignment

② 受講者の参加

  1. 講師が発行したURLを共有
    例:

    https://classroom.github.com/a/xyz123
  2. 受講者は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) リアルタイム進捗追跡 必要 ★★★ オンライン・上級講座

次に進めるトピックとして:

  1. GitHub Classroomの具体設定画面と操作例

  2. 受講者の進捗を自動集計するスクリプト例(講師用)

  3. VSCode上でGitHub連携しながら提出させる手順

どれを詳しく見たいですか?

あなた:
githubを利用 と セミナー用の Docker 環境構築や RISC-V SoC FPGA の教育パッケージ をあわせた
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にアップロード(公開)

  1. GitHubにアカウントを作ります(https://github.com)

  2. 「New Repository」をクリック

  3. 名前を riscv-edu にして作成

  4. ローカルの教材をアップロードします:

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の教育向けサービスで、
「受講者ごとに自動でリポジトリを作り、進捗を追跡」できるツールです。


使い方の流れ

  1. 講師が https://classroom.github.com にアクセス

  2. 「New Classroom」を作る

  3. 「New Assignment(課題)」を追加

    • 教材リポジトリをテンプレートとして指定

  4. Classroomが自動で「参加URL」を発行
    例:

    https://classroom.github.com/a/riscv2025
  5. 受講者はその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接続して実機実験