この記事では、VSCodeにGitHub Copilotを導入し、Pythonで作成したテトリスをDockerコンテナ化してGUIで起動する記事の内容をCopilotを使って簡単に行う手順ご紹介します。
Copilotを使えば、たった一つのコマンド実行で簡単にセットアップできました。
GitHub Copilotとは
GitHub Copilot は 、GitHubとOpenAIが共同開発したAI コーディング アシスタントで、Visual Studio Code、Visual Studioなどのエディタにインストールして使うことで、以下のことができます。
- コード補完と生成
自然言語のコメントから関数全体などを自動的に提案・生成ができます。 - Copilot Chat
コーディング関連の質問をできるチャット インターフェイスです。 - テストコード生成
単体テストのひな形を自動で作成し、テストの導入をスムーズにします 。 - ドキュメント補助
コードの説明コメントや README のドラフトを生成し、ドキュメント作成をサポートします。 - コーディングエージェント
自律的に開発タスク(コードの生成・修正、バグ修正とテストの自動化、ドキュメント・コメントの自動生成、Pull Request(PR)の自動作成・管理)を実行できるAIエージェント機能です。
VSCode でGitHub Copilotを使う
今回のGitHub Copilot使用:Pythonでテトリスを作ってDocker化してGuiで起動の作業は、VSCode にGitHub Copilotをインストールして行います。
VSCode へGitHub Copilotをインストールする
- VS Codeのインストール
インストールしていない場合は、Visual Studio Codeの公式サイト からダウンロードしてインストールします。 - GitHubアカウントの登録とログイン
GitHub CopilotはGitHubアカウントに紐付けられます。
GitHubアカウントを持っていない場合は、GitHub でのアカウントの作成を参照して作成した後にログインします。 - GitHub Copilot Freeの利用
VS Codeの拡張機能にGitHub Copilotをインストールし、GitHubアカウントと連携すると使えるようになります。
参考:GitHub Copilot Freeについて
Pythonでテトリスを作りDocker化してGuiで起動
Visual Studio CodeのGitHub Copilot Chatに、以下のプロンプトを入力するだけで、Docker起動に必要なファイルを自動生成してくれました。
Pythonでテトリスを作ってDocker化してGuiで起動する。
テトリスは、キー操作方法とスコアを表示し、ハードドロップ機能を持つこととする。
作成ファイルは、*****(ファイルを生成したいディレクトリを指定)に保存する。
下記が、Visual Studio Code上のGitHub Copilot実行時のメッセージです。
*****(指定したディレクトリ)が作成されました。
requirements.txtが作成されました。
Dockerfileが作成されました。
main.pyが作成されました。
ご要望通り、以下の3ファイルを *****(指定したディレクトリ)に作成しました。
- main.py(キー操作説明・スコア表示・ハードドロップ機能付きテトリス)
- requirements.txt(pygame指定)
- Dockerfile(GUI起動用)
【起動手順】
1. Xサーバー(VcXsrvやXming)をWindowsで起動
2. PowerShellで下記を実行
```powershell
cd *****(指定したディレクトリ)
docker build -t tetris .
docker run -e DISPLAY=host.docker.internal:0.0 -v /tmp/.X11-unix:/tmp/.X11-unix Docker tetris
```
画面右にキー操作説明、左上にスコア、スペースキーでハードドロップができます。
他に追加・修正したい点があれば教えてください。
Docker Desktopを起動して、Copilotメッセージ内の【起動手順】に従って、VcXsrvを起動した後にpowershellから指定コマンドを実行すると、Docker上でテトリスが起動されました。
以下は、powershellの操作画面です。
#powershell画面
>ls
ディレクトリ: *****(指定したディレクトリ)
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2025/06/26 15:46 346 Dockerfile
-a---- 2025/06/26 15:47 6340 main.py
-a---- 2025/06/26 15:46 15 requirements.txt
> docker build -t tetris .
[+] Building 8.5s (15/15) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 385B 0.0s
=> resolve image config for docker-image://docker.io/docker/dockerfile:1 3.6s
=> [auth] docker/dockerfile:pull token for registry-1.docker.io 0.0s
=> CACHED docker-image://docker.io/docker/dockerfile:1@sha256:9857836c9ee4268391bb5b09f9f157f3c91bb15821bb779696 0.0s
=> => resolve docker.io/docker/dockerfile:1@sha256:9857836c9ee4268391bb5b09f9f157f3c91bb15821bb77969642813b0d005 0.0s
=> [internal] load metadata for docker.io/library/python:3.11-slim 1.0s
=> [auth] library/python:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/6] FROM docker.io/library/python:3.11-slim@sha256:9e1912aab0a30bbd9488eb79063f68f42a68ab0946cbe98fecf197fe 0.0s
=> => resolve docker.io/library/python:3.11-slim@sha256:9e1912aab0a30bbd9488eb79063f68f42a68ab0946cbe98fecf197fe 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 64B 0.0s
=> CACHED [2/6] RUN apt-get update && apt-get install -y python3-tk python3-dev build-essential libgl1-mesa- 0.0s
=> CACHED [3/6] WORKDIR /app 0.0s
=> CACHED [4/6] COPY requirements.txt ./ 0.0s
=> CACHED [5/6] RUN pip install --no-cache-dir -r requirements.txt 0.0s
=> CACHED [6/6] COPY main.py ./ 0.0s
=> exporting to image 3.3s
=> => exporting layers 0.0s
=> => exporting manifest sha256:0fa22047cc83cd44aae44029cf54448baee055788c7d687ec2539010e7ca739f 0.0s
=> => exporting config sha256:d508111a87ab4c06e2322d38431f561a63da31ff5b9283a95734399d226d9af6 0.0s
=> => exporting attestation manifest sha256:1657e4d05f782a188c98acad07c2052c4bcb0386cb1aa278ad8c12a5d061ee42 0.0s
=> => exporting manifest list sha256:a40a6c38bf4d037131b7c78bce524afded73ab7ba20864fde3fb35f40f2b3efd 0.0s
=> => naming to docker.io/library/tetris:latest 0.0s
=> => unpacking to docker.io/library/tetris:latest 3.2s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/z5p37zsv5tjqepnac334r9gsr
What's next:
> docker run -e DISPLAY=host.docker.internal:0.0 -v /tmp/.X11-unix:/tmp/.X11-unix tetris
pygame 2.5.2 (SDL 2.28.2, Python 3.11.13)
Hello from the pygame community. https://www.pygame.org/contribute.html
起動したテトリスは、下記の通りでした。


