- Claude Code動かすために一旦全部整理した
- もろもろの利便性を考えてWSL有効化してそこで全部やることにした
- ネイティブUbuntuマシンはネイティブ環境じゃないといけないやつで使う?リアルタイムカーネルいれてみてもいいかも
インストール
Windows
Scoop
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserInvoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
PowerShell
scoop install pwsh
Git
scoop install git- プロキシ環境下の場合、GitBashでプロキシ設定を記載しておく
git config --global http.proxy <プロキシ>
Chrome
scoop bucket add extrasscoop install googlechrome
Wezterm-nightly
scoop bucket add versionsscoop install wezterm-nightly- WSL2上で新規Paneを開いたときにカレントを引き継ぐ場合、WSL2上で以下を実行する
curl -fsSL https://raw.githubusercontent.com/wez/wezterm/main/assets/shell-integration/wezterm.sh -o ~/.wezterm.shecho '. ~/.wezterm.sh' >> ~/.bashrcexec bash -lprintf "\033]7;file://%s%s\033\\" "$HOSTNAME" "$PWD"
- WSL2上で新規Paneを開いたときにカレントを引き継ぐ場合、WSL2上で以下を実行する
Dotfiles
git clone https://github.com/loppy-ai/dotfiles- さっきインストールしたPowerShell 7.xの管理者権限で
make_link_windows.ps1を実行
VSCode
scoop install vscode- 拡張機能
- Windows
- GitHub Copilot
- Markdown All in One
- Markdown Table
- indent-rainbow
- Zenkaku
- WSL2
- Windowsのもの
- Claude Code for VS Code
- コンテナ
- devcontainer.jsonの customizations > vscode > extensions に記載することで、reopen時にインストールされる
- Windows
- 設定
- Windows上
- Terminal > Integrated: Font Size
- 18
- Markdown > Extension > List: Indentation Size
- inherit
- Dev > Containers: Execute In WSL
- チェックをいれる
- Terminal > Integrated: Font Size
- WSL2上
- Extensions > Claude Code > Allow Dangerously Skip Permissions
- チェックを入れる
- Docker環境内だけで動かすからこれで大丈夫なはず
- 別途やばいコマンドはNGにいれる予定
- Extensions > Claude Code > Allow Dangerously Skip Permissions
- Windows上
VisualStudio
- そのうち
AndroidStudio
- そのうち
QtCreator
- そのうち
- aqtinstallを使用する予定
usbipd-win
- WindowsのUSBをWSL2に流す、みたいなやつ
- そのうち
WSL2
本体
- プログラムと機能で Linux用Windowsサブシステム を有効化しておく
wsl --install Ubuntu-24.04- プロキシ環境下の場合、以下に設定を追記する
~/.bashrc/etc/apt/apt.conf.d/99proxy
git
sudo apt install git- たぶん最初から入っている
tree
sudo apt install tree
Neovim
sudo apt install neovim
Docker
sudo apt install -y ca-certificates curl gnupg lsb-release- たぶん最初から入ってる
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho "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/nullsudo apt update | sudo apt install -y docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo systemctl enable dockersudo usermod -aG docker $USER- プロキシ環境下の場合は、追加で以下の対応が必要
/etc/systemd/system/docker.service.d/http-proxy.confを作成sudo systemctl daemon-reload && sudo systemctl restart dockerで再起動
gh
- 公式サイトを参照
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \ && sudo mkdir -p -m 755 /etc/apt/keyrings \ && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ && sudo mkdir -p -m 755 /etc/apt/sources.list.d \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && sudo apt update \ && sudo apt install gh -y gh auth login- Github.comを選択
- SSHを選択
- (SSHキーがなければ作る、passphraseは空欄・SSHキータイトルはデフォルトのGitHubCLI)
- Paste an authentication tokenを選択
- GUI環境でPATページにアクセス
- Generate new token (classic)を新規作成
- Noteにどこで使うtokenかを入力
- Expiration : 90日にした
- Select scopes : repo・read:org・admin:public_key
- Generate token
- Generate new token (classic)を新規作成
- トークンを貼り付けてログイン
uv
curl -LsSf https://astral.sh/uv/install.sh | sh- Python本体はコンテナで実施するので、インストールしない
Claude Code
- 基本的にコンテナ内で動かすが、WSL2上にもインストールしておく
- コンテナごとの認証を回避するために、以下を実施する
- WSL2上で認証を実施
- コンテナはその認証情報のファイルをマウントする
- コンテナごとの認証を回避するために、以下を実施する
curl -fsSL https://claude.ai/install.sh | bashcd projectsclaude- テーマ選択 : 1. Dark mode
- 認証 : 1. Claude account with subscription
- 認証URLが生成されるので、コピーしてGUI環境のブラウザで貼り付け
- ブラウザで生成された認証コードを貼り付け
- フォルダを信頼する
claude-monitor
uv tool install claude-monitorclaude-monitor --plan pro --timezone Asia/Tokyo- .bashrcにエイリアス設定
alias cm='claude-monitor --plan pro --timezone Asia/Tokyo'source .bashrc
Codex
- そのうち
開発の始め方
- WindowsのVSCodeでWSLに接続し、プロジェクトのフォルダを開く
- プロジェクトのフォルダ配下に以下を作成する(テンプレートがある場合はコピーする)
project/
.devcontainer/
Dockerfile
devcontainer.json
compose.yaml
- コマンドパレットから Dev Containers: Reopen in Container を選択する
- ビルドされて環境ができあがり、設定したWorkspaceで開発ができる
それぞれのファイルについて
- 例として、C++とPythonを合わせた環境を作る
.devcontainer/Dockerfile
- コンテナの設計図
- これを読み込んでビルドして、イメージを作る
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
ARG DEBIAN_FRONTEND=noninteractive
# apt-get時に使用するプロキシ
ARG HTTP_PROXY
ARG HTTPS_PROXY
ARG NO_PROXY
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
gdb \
git \
ca-certificates \
curl \
pkg-config \
python3 \
python3-pip \
python3-venv \
&& rm -rf /var/lib/apt/lists/*
.devcontainer/devcontainer.json
- VSCodeにこのコンテナにどう接続して開発するかを教える設定
- Reopen in Container時に読み込まれる
- featuresはClaude Codeをコンテナにいれてくれる
- mountsでClaude Codeの認証系をマウントしてコンテナで使えるようにする
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "cpp-python-dev",
"dockerComposeFile": ["../compose.yaml"],
"service": "dev",
"workspaceFolder": "/workspace",
"remoteUser": "vscode",
"shutdownAction": "stopCompose",
"customizations": {
"vscode": {
"extensions": [
"Anthropic.claude-code",
"ms-vscode.cpptools-extension-pack",
"ms-python.python"
],
"settings": {
"terminal.integrated.defaultProfile.linux": "bash"
}
}
},
"features": {
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
},
"mounts": [
"source=${localEnv:HOME}/.claude.json,target=/home/vscode/.claude.json,type=bind,consistency=cached",
"source=${localEnv:HOME}/.claude,target=/home/vscode/.claude,type=bind,consistency=cached"
]
}
compose.yaml
- どう起動するかの定義
services:
dev:
build:
context: .
dockerfile: .devcontainer/Dockerfile
args:
プロキシ設定(FROMで持ってくるためのやつ)
environment:
プロキシ設定(持ってきたやつの中でapt-getするため)
command: sleep infinity
volumes:
- .:/workspace:cached
init: true
# compose単体で使うのであれば、以下を有効化する
# VSCodeのdevcontainer.jsonで指定している場合は不要
# working_dir: /workspace
# user: vscode
DockerImage/Volume全削除
docker system prune -a --volumes -f- ChatGPTが「核を落としてDocker環境を消すコマンドです」って言ってて笑ってしまった
参考にしたサイト
Scoopを使った環境構築 - Qiita
Scoop とは ScoopはWindows用のパッケージ管理ツールです。 Scoopを導入することでUbuntuの apt 、RHLE/CentOSの yum 、macの brewのようなことができるようになります。 Windowsにおけ...
GitコマンドをProxy環境可で利用する。 - Qiita
プロキシを設定する Gitを使っていると、環境によってはプロキシ経由でアクセスする必要が出てきます。 そんな時は、以下の設定を実行することで、プロキシ経由でアクセスすることが出来ます。 git config --global http.pr...
プロキシのある環境でDockerを動かす方法 - Qiita
日立製作所の小出です。この記事ではDockerを使う際にプロキシを設定する方法と、それに関連するDockerの挙動について説明します。 はじめに 会社からインターネットに接続するためにはプロキシを経由する必要がある、というのはありがちなシチ...
Dev Containerで安全にclaude codeを使う - Qiita
まとめ Dev Containerの中でClaude Codeを起動することでプロジェクト内のファイルのみへのアクセスを許可することで意図しないファイルの変更・削除・作成などを避けることができます claude codeの設定には以下の設定...

コメント