0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

copilot-cliを比較的安全に実行するためのdockerコンテナ作成

0
Last updated at Posted at 2026-04-13

はじめに

GitHub Copilot CLI をなるべく安全に自走させるため、専用のDockerワークスペースを作りました。

注意喚起

上記のリポジトリでは、コンテナ内でcopilot-cliを起動するとyoloモード(全権限許可)になるようaliasで設定していますが、実際に運用する際は、どの程度の権限を与えるかを慎重に判断してください
Dockerコンテナを作ってもcopilotをyolo(allow-all)モードで実行させることにはリスクがあります。
ネットワークに繋がっていればリモートリポジトリの破壊や情報漏洩など悪さはやろうと思えばいくらでもできます。
copilot-cliに与える権限については慎重にご判断ください。

つくったもの

このリポジトリでは、Copilot CLI を動かすための Docker ベースの workspace を用意しています。

特徴は次の通りです。

  • 以下をインストール済み
    • copilot-clighgituvtmuxなど
    • など
  • ホストOSでghにログインしておけば、コンテナ内で再ログイン不要
  • ホストのディレクトリを既定ではbind mountしないため、コンテナ内でのファイル操作によってホストが直接影響を受けるリスクが減る(ネットワーク経由でのリスクは残る)
  • コンテナは root ではなく専用ユーザーで動かす

どういう人向けか

以下のようなユーザをイメージしながら作りました。

  • Copilot CLI を試したいけど、ホストに直接入れたくない
  • AI エージェントにある程度自由にコマンドを打たせたい
  • 普段使いの開発環境とは少し分離したい
  • Python 開発で最低限の道具は最初から入っていてほしい

使い方

コンテナにログイン後、/home/copilot/development にリポジトリを clone、tmuxでwindowを分けながらcopilotを並列実行するような流れを想定しています。

  • ビルドと起動
# イメージ作成
./scripts/compose.sh build
# 常駐ワークスペースとして起動
./scripts/compose.sh up
# シェルに入る
./scripts/compose.sh exec
  • コンテナ内での作業例
cd ~/development
# ブラウザ等でcopilotにログイン
copilot login
# tmuxでwindowを分けながらcopilotを並列実行
tmux new -s copilot
gh repo clone owner/repo1
cd repo1
copilot
# 別window
# ctrl+b c で新しいwindowを作る
gh repo clone owner/repo2
cd repo2
copilot

copilotのalias

対話シェルでは、Copilot CLI を少し使いやすくするために alias も入れています。

export BASH_ENV="$HOME/.bashexports"
[ -f "$BASH_ENV" ] && . "$BASH_ENV"
alias copilot='copilot --yolo --bash-env=on'

--yoloの部分は各自で許容できるリスクに合わせて変えると良いと思います。

おわりに

とりあえず今のところ使っていて不満はないです。
似たことをやりたい方の参考になればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?